3

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

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

但是当我在 watir-webdriver 中使用 click 方法时,它不会等待下一个页面隐式加载并立即执行调用中的下一行。我可以使用 wait_until_present 但是在等待页面加载点击似乎是标准行为时,对很多页面执行此操作对我来说似乎有点过头了。

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

4

2 回答 2

1

如果您在浏览器指示页面已加载时遇到问题,但客户端仍在发生问题(可能是 javascript 代码执行或 css 逻辑等),那么我建议在您的操作前使用“when_present”装饰器.

这比必须放入单独的等待步骤要干净一些,并且比固定的睡眠时间等要好得多。

browser.button(:how => 'what').when_present.click
于 2012-05-02T17:35:30.830 回答
1

如果您希望内容加载但不单击,您也可以等待 div 加载。

browser.div(:how => 'what').wait_until_present
于 2012-05-08T16:02:53.993 回答