当前位置: 首页 > 知识库问答 >
问题:

使WebDriver在没有ExpectedCondition的情况下等待

刘丰羽
2023-03-14

Java/Selenium WebDriver/Firefox

页面上有一个文本“输入”字段。然后它下面有一个‘提交’按钮。加载页面时,输入字段和提交按钮都已启用。在输入字段中输入文本后,是否有一种方法让WebDriver在点击Submit按钮之前等待“x”秒,而不是立即点击它。

共有1个答案

荀豪
2023-03-14

Selenium waits设计用于等待特定条件。隐式等待等待元素存在于驱动程序中的DOM中。findElement()显式等待等待ExpectedConditionTrue

但是,一旦满足条件,代码就会继续,或者,如果条件失败,就会抛出异常。

您可以通过使用一些操作使代码在没有线程的情况下“Hibernate”

WebDriverWait tempWait = new WebDriverWait(driver, 10); // define local/temp wait only for the "sleep"
try {
    tempWait.until(ExpectedCondition); // condition you are certain won't be true
}
catch (TimeoutException) {
    continue; // catch the exception and continue the code
}
// continue the code

这是一项肮脏的工作,甚至不如thread.sleep()有效。如果目的是等待一段时间,而不管web条件如何,我建议您使用thread.sleep()

 类似资料:
  • 我看到的所有解决方案都需要使用。但是,我想在Eclipse之外的单个文件上使用CDT解析器。那有什么办法吗?

  • 问题内容: 我有2个矩阵,我需要将它们相乘,然后打印每个单元格的结果。准备好一个单元格后,我就需要打印它,但是例如,即使[2] [0]的结果先准备好,我也需要在单元格[2] [0]之前打印[0] [0]单元格。所以我需要按顺序打印它。因此,我的想法是让打印机线程等待,直到multiplyThread通知它准备打印正确的单元格,然后printerThread它将打印该单元格并返回等待状态,依此类推。

  • 问题内容: 我需要将一堆列名称解析为列索引(以便使用一些不错的方法)。但是,我知道如何获取对象的唯一方法是调用some 。 我的问题是,获取ResultSet会占用我不必要的资源-我真的不需要查询表中的数据,我只需要一些有关表的信息。 有谁知道以任何方式获取对象而不先获取(可能来自巨大表)的对象吗? 问题答案: 也许你可以使用 它为每个表列返回一行。 在这种情况下,您将使用返回的本身,而不是其。

  • 问题内容: 我想像运行shell命令: 不用任何插件就能做到吗?由于Jenkins不是,而是服务帐户,我该如何添加? 问题答案: 首先执行 然后执行 然后注销 对于注销很重要,因为您需要重新评估组成员身份 登录并重试 有用!

  • 问题内容: 我想学习Angular 2并切换到使用它的应用程序,但是,我在使用TypeScript时遇到问题。 在当前环境中,我不能使用使用transpiler /编译器。我目前只需要运行node.js可执行文件(node.exe),而不必运行完整的node.js应用程序,也不需要运行npm。Angular 2是用TypeScript编写的,因此在将其发送到浏览器之前,需要先将其编译为JavaSc

  • 问题内容: 我从Vaadin开始,我想知道在不使用maven的情况下在NetBeans中使用此框架是否可行。原因是使用maven的项目需要很长时间才能下载依赖项,并且由于超时连接问题而无法运行。 我已经下载了“多合一”文件,并尝试按照这些README.txt文件的说明进行操作: 将除vaadin-client和vaadin-client-compiler以外的所有vaadin- *文件复制到项目中