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

axzmvihb  于 2023-08-04  发布在  Ruby
关注(0)|答案(3)|浏览(118)

我最近开始使用Watir-Webdriver后,以前使用Watir,因为我需要一些功能,这是目前在webdriver,但不是在Watir。我在watir中遇到了一个webdriver问题,这是我在Watir中从未遇到过的。
每当在Watir中对按钮使用click方法时,它都会隐式地等待新页面完全加载。我在Watir-webdriver文档中读到了等待,在这个question中,Watir-webdriver中的等待已经改变,以适应 AJAX 对网页所做的动态更改。现在,我正在自动化的页面没有任何 AJAX 元素,它只包含静态元素。
但是当我在watir-webdriver中使用click方法时,它不会等待下一个页面隐式加载,而是立即执行调用中的下一行。我可以使用iswait_until_present,但是当等待页面在点击时加载似乎是标准行为时,对我来说,对很多页面这样做似乎有点矫枉过正。
我错过了一些选项,我需要切换,使Watir的点击方法是在watir-webdriver模拟?

xghobddn

xghobddn1#

如果你遇到浏览器提示页面已经加载的问题,但是客户端仍然在发生一些事情(可能是JavaScript代码执行,或者css逻辑等等),那么我建议在你的操作前面使用'when_present'装饰器。
这比必须在一个单独的等待步骤中放置一个更干净的步骤,并且比固定的睡眠时间等要好得多。

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

字符串

t1rydlwq

t1rydlwq2#

你也可以等待div加载,如果你想加载内容但不点击。

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

字符串

4urapxun

4urapxun3#

根据当前的实现,其余的已经被弃用,下面的例子在给定的条件下工作-

browser.button(name: 'submit').wait_until(&:enabled?)

字符串
参考:http://watir.com/guides/waiting/

相关问题