使用wait.until(ExpectedConditions.visibilityOf(element)方法

时间:2019-09-20 16:56:19

标签: selenium-webdriver selenium-chromedriver

我正在尝试将chrome驱动程序用于硒。尽管所有其他操作都可以,但是当我使用下面的代码时,却出现异常。该元素确实存在,并且driver不为null。如果我注释掉此调用(并替换为sleep),则测试运行正常。知道失败的原因可能是什么。

WebDriverWait wait = new WebDriverWait(driver, timeout);
 wait.until(ExpectedConditions.visibilityOf(element));
  

java.lang.NullPointerException       在org.openqa.selenium.remote.RemoteWebElement.isDisplayed(RemoteWebElement.java:320)       在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处       在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)       在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)       在java.lang.reflect.Method.invoke(Method.java:498)       在org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:51)       位于com.sun.proxy。$ Proxy10.isDisplayed(未知来源)       在org.openqa.selenium.support.ui.ExpectedConditions.elementIfVisible(ExpectedConditions.java:315)       在org.openqa.selenium.support.ui.ExpectedConditions.access $ 100(ExpectedConditions.java:44)       在org.openqa.selenium.support.ui.ExpectedConditions $ 10.apply(ExpectedConditions.java:301)       在org.openqa.selenium.support.ui.ExpectedConditions $ 10.apply(ExpectedConditions.java:298)       在org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:248)

2 个答案:

答案 0 :(得分:0)

将硒降级到3.0.1解决了该问题。

答案 1 :(得分:0)

此错误可能是由chromedriver引起的。我在chrome驱动程序77.x版中遇到了同样的问题,当我将chromedriver降级到76.x版时,该问题得以解决。请参阅以下页面: https://bugs.chromium.org/p/chromedriver/issues/detail?id=3123