【问题标题】:Selenium Add EventListener to RemoteWebDriverSelenium 将 EventListener 添加到 RemoteWebDriver
【发布时间】:2022-11-02 22:08:36
【问题描述】:

我想将 EventListener 添加到 RemoteWebDriver 的实例中。这是否有可能,或者是否有另一种方法可以在 selenium 中实现相同的目标(除了可能实现观察者模式并从头开始编写所有代码)。

我曾尝试使用EventFiringDecoratorWebDriverListener,但decorate(WebDriver driver) 方法返回ByteBuddy 的实例,然后将其转换为(WebDriver) 并返回,因此WebDriver 的返回实例不能投射到RemoteWebDriver

在创建 RemoteWebDriver 的实例时,我想可选地添加侦听器,例如在以下代码 sn-p 中。

class Foo {

 private RemoteWebDriver driver = null;

 public RemoteWebDriver initializeDriver() {

     //setup of remoteWebDriver
     //...

     if(eventListenerIsActivated) {
         MyEventListener myEventListener = new EventListener(driver);
         EventFiringDecorator eventFireDec = new EventFirirngDec(myEventListener);

         //not possible, throws ClassCastException!
         driver = (RemoteWebDriver) eventFireDec.decorate(driver); 
     }
     return driver;
 }
}

class MyEventListener implements WebDriverListener { //... }

【问题讨论】:

    标签: java selenium events


    【解决方案1】:

    你可以试试:

    EventFiringDecorator eventFireDec = new EventFiirngDec(myEventListener).decorate(driver);

    WrapsDriver wrapperAccess = (WrapsDriver) eventFireDec;

    driver = ((RemoteWebDriver) wrapperAccess.getWrappedDriver()));

    【讨论】:

      猜你喜欢
      • 2020-11-22
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 2021-07-24
      • 2019-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多