【问题标题】:What is the best wait command to use in Selenium [closed]在 Selenium 中使用的最佳等待命令是什么 [关闭]
【发布时间】:2014-12-02 16:37:20
【问题描述】:

我正在使用 Eclipse 和 Java 在 Selenium 中构建自动化测试包。在我进行的过程中,我发现有时某些操作可能需要比以前更长的时间。所以,虽然我知道我需要实现某种等待命令,但我想知道最有效的命令是什么?本质上,我想要的是让网页在控制台中返回错误之前等待 X 秒。

另外,根据人们过去的经验,实现这一点的最佳方式是什么?我在想我创建了某种“等待命令”类,它将有一系列可以根据场景使用的方法。这是正确的方法吗?

【问题讨论】:

  • 他们都是最好的!你试过什么?什么有效?什么不起作用?
  • 嗨 Si,我问的原因是有人建议我不要使用 Thread.Sleep(),因为这意味着网页会在规定的时间段内停止。我的乌托邦场景将让每个页面等待,可能是 10 秒,以便元素全部加载并可以定位。我使用过 ImplicitWaits 等,但只是在一些提示之后,哪些最适合在特定场景中使用?
  • 如果存在完美的解决方案,您不认为它已经内置到 Selenium 中了吗?

标签: java eclipse selenium webdriver


【解决方案1】:

selenium 已经成熟的内置等待机制。

它具有隐式等待,这意味着当您导航到新页面时,它会等待整个页面加载完毕,然后再对页面执行任何操作。

在使用 Ajax 的地方,上面可能没有帮助,因此我们必须使用显式等待来确保 ajax 请求完成。例如:

(new WebDriverWait(driver, 10))
  .until(ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement")));

查看以下链接,了解更多详情 http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits

【讨论】:

猜你喜欢
  • 2020-04-11
  • 2011-09-20
  • 2013-12-19
  • 2022-01-21
  • 1970-01-01
  • 2015-07-25
  • 2020-10-16
  • 2021-02-10
相关资源
最近更新 更多