当前位置: 首页 > 面试题库 >

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

储峻
2023-03-14
问题内容

到目前为止,我使用的是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中来修复它:

<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) {}



 类似资料:
  • 我还是Selenium测试世界的新手,目前正在使用SeleniumChromeWebDriver进行测试。 我想做的是在下面的弹出对话框中: < li >在文本输入框中输入一个数字 < li >单击应用按钮 < li >然后将触发web应用程序向服务器端发布信息。 这是我到目前为止发现的,如果我取消对<code>线程的注释。睡眠(500),一切都将完美工作。但是没有<code>线程。sleep(5

  • 我在https://www.yatra.com/etw-desktop/.学习自动化硒测试。当我尝试单击名为“亚洲”的图像按钮(图片已附)时,我收到一个超时异常。请帮我弄清楚出了什么问题。 显示要单击的Web元素的图像

  • 我使用了下面的代码进行拖放。它在Firefox驱动程序中工作,但在chrome驱动程序中不起作用。 请帮忙!

  • 我在Firefox48.0中从Firefox47的新更新中得到一个错误 45000 ms后,无法在端口7055上连接到主机127.0.0.1。Firefox控制台输出:066 addons.xpi调试更新数据库,更改已安装的加载项 我的系统和浏览器配置是: Firefox 48

  • 问题内容: 我正在使用selenium来测试我们的网站。当我构建项目时,有一个例外:- OpenQA.Selenium.WebDriverException:无法在45000毫秒内启动套接字。尝试连接到以下地址:127.0.0.1:7055,问题出在代码上 有人知道如何解决这个问题吗? 问题答案: 与其他浏览器供应商提供给Selenium的其他驱动程序一样, Mozilla也发布了将与浏览器一起运