1616
1717package io .appium .java_client .proxy ;
1818
19- import com .google .common .base .Preconditions ;
2019import net .bytebuddy .matcher .ElementMatchers ;
2120import org .openqa .selenium .WebDriver ;
2221import org .openqa .selenium .remote .RemoteWebDriver ;
2322import org .openqa .selenium .remote .RemoteWebElement ;
2423
2524import java .lang .reflect .Method ;
26- import java .util .Collection ;
2725import java .util .Collections ;
2826import java .util .List ;
2927import java .util .concurrent .Callable ;
3331import static io .appium .java_client .proxy .Helpers .createProxy ;
3432import static net .bytebuddy .matcher .ElementMatchers .namedOneOf ;
3533
36- public class RemoteWebElementListener implements MethodCallListener , ProxyAwareListener {
34+ public class WebDriverListener implements MethodCallListener , ProxyAwareListener {
3735 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- }
4736
4837 @ Override
4938 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+ }
5242 }
5343
5444 @ Override
@@ -59,13 +49,13 @@ public Object call(Object obj, Method method, Object[] args, Callable<?> origina
5949 return wrapElement (
6050 (RemoteWebElement ) result ,
6151 parent ,
62- listeners );
52+ this );
6353 }
6454
6555 if (result instanceof List ) {
6656 return ((List <?>) result ).stream ()
6757 .map (item -> item instanceof RemoteWebElement ? wrapElement (
68- (RemoteWebElement ) item , parent , listeners ) : item )
58+ (RemoteWebElement ) item , parent , this ) : item )
6959 .collect (Collectors .toList ());
7060 }
7161
@@ -75,13 +65,13 @@ public Object call(Object obj, Method method, Object[] args, Callable<?> origina
7565 private RemoteWebElement wrapElement (
7666 RemoteWebElement original ,
7767 WebDriver parent ,
78- Collection < MethodCallListener > listeners
68+ MethodCallListener listener
7969 ) {
8070 RemoteWebElement proxy = createProxy (
8171 RemoteWebElement .class ,
8272 new Object []{},
8373 new Class []{},
84- listeners ,
74+ Collections . singletonList ( listener ) ,
8575 ElementMatchers .not (
8676 namedOneOf (
8777 OBJECT_METHOD_NAMES .toArray (new String [0 ]))
0 commit comments