一尘不染

wait.until(ExpectedConditions)在selenium中不再起作用

selenium

到目前为止,我使用的是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上找到的大多数内容都是旧信息,它们解释了我到目前为止使用的相同方法。


阅读 306

收藏
2020-06-26

共1个答案

一尘不染

我遇到过同样的问题。

我通过使用不推荐使用的.until()方法WebDriverWait并将以下内容添加到我的maven pom.xml中来修复它:

<dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>21.0</version>
</dependency>

除此之外,我的代码看起来和以前完全一样。

更具体地说,现在有两种.until()方法。

旧的(不推荐使用):
public void until(final Predicate<T> isTrue) {}

和新的:
public <V> V until(Function<? super T, V> isTrue) {}

2020-06-26