Watir-webdriver:如何强制click方法等待页面完全加载

时间:2012-05-01 21:42:32

标签: ruby watir watir-webdriver webautomation

我最近在使用Watir之后开始使用Watir-Webdriver因为我需要一些功能,这些功能存在于webdriver但不存在于Watir中。我在watir-webdriver中遇到了一个问题,我在Watir中从未遇到过这个问题。

每当在Watir中的按钮上使用click方法时,它就会隐式等待新页面完全加载。我在Watir-webdriver文档中读到等待并在此question中等待watir-webdriver已被更改,以适应对AJAX所做的网页所做的动态更改。现在,我自动化的页面没有任何AJAX元素,它只包含静态元素。

但是当我在watir-webdriver中使用click方法时,它不会等待下一页隐式加载并立即执行调用中的下一行。我可以使用的是wait_until_present,但是对于我来说,在等待页面加载点击时,对于我来说这对我来说似乎是一种过度杀伤似乎是标准行为。

我缺少一些我需要切换的选项,以便Watir的click方法在watir-webdriver中模拟?

2 个答案:

答案 0 :(得分:1)

如果您遇到浏览器指示页面已加载但问题仍在客户端(可能是javascript代码正在执行,或css逻辑等)的问题,那么我建议您使用'when_present' decorator你的行动前面。

这比必须单独进行等待步骤更清洁,并且比固定睡眠时间等要好得多。

browser.button(:how => 'what').when_present.click

答案 1 :(得分:1)

如果您希望加载内容而不是点击,也可以等待div加载。

browser.div(:how => 'what').wait_until_present