16
16
17
17
package io .appium .java_client .proxy ;
18
18
19
- import com .google .common .base .Preconditions ;
20
19
import net .bytebuddy .matcher .ElementMatchers ;
21
20
import org .openqa .selenium .WebDriver ;
22
21
import org .openqa .selenium .remote .RemoteWebDriver ;
23
22
import org .openqa .selenium .remote .RemoteWebElement ;
24
23
25
24
import java .lang .reflect .Method ;
26
- import java .util .Collection ;
27
25
import java .util .Collections ;
28
26
import java .util .List ;
29
27
import java .util .concurrent .Callable ;
33
31
import static io .appium .java_client .proxy .Helpers .createProxy ;
34
32
import static net .bytebuddy .matcher .ElementMatchers .namedOneOf ;
35
33
36
- public class RemoteWebElementListener implements MethodCallListener , ProxyAwareListener {
34
+ public class WebDriverListener implements MethodCallListener , ProxyAwareListener {
37
35
private WebDriver parent ;
38
- private final Collection <MethodCallListener > listeners ;
39
-
40
- public RemoteWebElementListener (MethodCallListener listener ) {
41
- this .listeners = Collections .singletonList (listener );
42
- }
43
-
44
- public RemoteWebElementListener (Collection <MethodCallListener > listeners ) {
45
- this .listeners = listeners ;
46
- }
47
36
48
37
@ Override
49
38
public void attachProxyInstance (Object proxy ) {
50
- Preconditions .checkArgument (proxy instanceof WebDriver );
51
- this .parent = (WebDriver ) proxy ;
39
+ if (proxy instanceof WebDriver ) {
40
+ this .parent = (WebDriver ) proxy ;
41
+ }
52
42
}
53
43
54
44
@ Override
@@ -59,13 +49,13 @@ public Object call(Object obj, Method method, Object[] args, Callable<?> origina
59
49
return wrapElement (
60
50
(RemoteWebElement ) result ,
61
51
parent ,
62
- listeners );
52
+ this );
63
53
}
64
54
65
55
if (result instanceof List ) {
66
56
return ((List <?>) result ).stream ()
67
57
.map (item -> item instanceof RemoteWebElement ? wrapElement (
68
- (RemoteWebElement ) item , parent , listeners ) : item )
58
+ (RemoteWebElement ) item , parent , this ) : item )
69
59
.collect (Collectors .toList ());
70
60
}
71
61
@@ -75,13 +65,13 @@ public Object call(Object obj, Method method, Object[] args, Callable<?> origina
75
65
private RemoteWebElement wrapElement (
76
66
RemoteWebElement original ,
77
67
WebDriver parent ,
78
- Collection < MethodCallListener > listeners
68
+ MethodCallListener listener
79
69
) {
80
70
RemoteWebElement proxy = createProxy (
81
71
RemoteWebElement .class ,
82
72
new Object []{},
83
73
new Class []{},
84
- listeners ,
74
+ Collections . singletonList ( listener ) ,
85
75
ElementMatchers .not (
86
76
namedOneOf (
87
77
OBJECT_METHOD_NAMES .toArray (new String [0 ]))
0 commit comments