等待窗口加载而不使用等待元素存在 - Watir Webdriver

时间:2015-01-15 16:08:07

标签: ruby selenium-webdriver watir-webdriver

Watir Webdriver中是否有可用的函数等待加载新的窗口选项卡?

现在发生的事情是测试不是等待加载选项卡而且我的脚本因此而失败。

  

我知道我可以等待网页中的某些元素。但我不想为每个网页这样做。   如果没有可用的方法,我想在我的框架中为库创建一个新方法。

我是watir webdriver和ruby编程的新手。所以,请帮助我编写一个库函数,以防无法使用...

1 个答案:

答案 0 :(得分:1)

我可能会误解,但你的问题似乎说两件事。一方面,你说Watir不等待页面加载。但是你说你知道Watir 可以等待,但你不想在每一页上都这样做。

根据我的经验,我可能会误解,如果Watir过快而且您的页面没有加载,您别无选择但要让Watir在任何页面上等待这是个问题。你还有什么想法?

如果你的页面在30秒内加载,你可以使用.wait_until_present.when_present.(即,Watir将在元素可用时继续运行,并在半分钟后超时)。

例如,如果您加载的页面包含文本" Hello"在div中,您可以让Watir等待最多30秒,以便

显示该文字
browser.div(:text, 'Hello').wait_until_present

然后让你的测试从它停止的地方开始。

或者,如果有(例如)button具有id" buttonId"要在页面加载时单击,您可以使Watir等待最多30秒,直到按钮加载并可单击:

browser.button(:id, 'buttonId').when_present.click

我几乎总是对每个新页面加载使用.wait_until_present.when_present.。在正常情况下,30秒足以让页面为Watir做好准备,这两种方法都能很好地工作。

另见http://watirwebdriver.com/waiting/