【发布时间】:2021-08-06 20:37:00
【问题描述】:
public class DummyClass {
WebDriver driver;
@Test(priority = 1)
public void testNewFeature() {
WebDriverManager.chromedriver().setup();
System.setProperty("webdriver.chrome.silentOutput", "true");
WebDriverListener customListener = new DriverEventListener();
driver = new EventFiringDecorator(customListener).decorate(new ChromeDriver());
driver.get("http://www.google.com");
WebElement button = driver.findElement(By.xpath(".//a[text()='Sign in']"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", button);
}
}
public class DriverEventListener implements WebDriverListener {
public void beforeExecuteScript(WebDriver driver, String script, Object[] args) {
System.out.println("beforeExecuteScript ");
}
public void afterExecuteScript(WebDriver driver, String script, Object[] args, Object result) {
System.out.println("afterExecuteScript ");
}
}
抛出错误
java.lang.IllegalArgumentException:参数属于非法类型: com.sun.proxy.$Proxy15 在 org.openqa.selenium.remote.internal.WebElementToJsonConverter.apply(WebElementToJsonConverter.java:85) 在 java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) 在 java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) 在 java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) 在 java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) 在 java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) 在 java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 在 java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) 在 org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:550) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 方法)在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:564) 在 org.openqa.selenium.support.decorators.WebDriverDecorator.call(WebDriverDecorator.java:228) 在 org.openqa.selenium.support.decorators.DefaultDecorated.call(DefaultDecorated.java:48) 在 org.openqa.selenium.support.decorators.WebDriverDecorator.lambda$createProxy$0(WebDriverDecorator.java:287) 在 com.sun.proxy.$Proxy14.executeScript(Unknown Source)
【问题讨论】:
-
仍在 alpha 测试中。Selenium 最新的稳定版本是
3.141.59V3。如果您认为这可能是一个问题,请随时在这里提出票https://github.com/SeleniumHQ/selenium/issues -
是的,谢谢,我还找到了 EventFiringWebDriver 的先前构建替代方案
标签: selenium selenium-webdriver webdriver