到目前为止,我使用的是2.45.0版本的selenium,所有等待都以这种方式完成:
WebDriverWait wait = new WebDriverWait(webKitUtility.getWebDriver(), 5); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("role")));
但是我将selenium更新为3.1.0,但出现错误:
“类型FluentWait中的直到(Predicate)方法不适用于参数(ExpectedCondition)”
我看到从2.45.0到3.1.0不再支持某些功能。我正在尝试研究什么是现在最好的方法,但是我不确定。我在Google上找到的大多数内容都是旧信息,它们解释了我到目前为止使用的相同方法。
我遇到过同样的问题。
我通过使用不推荐使用的.until()方法WebDriverWait并将以下内容添加到我的maven pom.xml中来修复它:
.until()
WebDriverWait
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>21.0</version> </dependency>
除此之外,我的代码看起来和以前完全一样。
更具体地说,现在有两种.until()方法。
旧的(不推荐使用): public void until(final Predicate<T> isTrue) {}
public void until(final Predicate<T> isTrue) {}
和新的: public <V> V until(Function<? super T, V> isTrue) {}
public <V> V until(Function<? super T, V> isTrue) {}