【发布时间】:2015-04-06 21:42:46
【问题描述】:
这是我失败的代码。
link(:continue, :text => 'Continue Shopping')
def verify_cart
wait_until(60) do
continue_element.visible?
end
end
为了让它发挥作用,我在这里尝试了解决方案: Inconsistently getting error (Watir::Wait::TimeoutError) 和Timeout::Error in Rails application using Watir 但没有一个对我有用。
我也尝试过增加时间。
然后我尝试将 implicit wait 从 3 秒增加到 20 秒,而不是使用 wait_until 块,我只是使用了 .visible? 并且它起作用了。
link(:continue, :text => 'Continue Shopping')
continue_element.visible?
#def verify_cart
# wait_until(60) do
# continue_element.visible?
# end
# end
现在的问题是元素何时存在,为什么 wait_until 一直失败?
【问题讨论】:
-
@JustinKo 你能谈谈你的想法吗?
-
使用
continue_element.visible?而不是wait_until(60){ continue_element.visible? }是什么意思?是否意味着异常消失并且脚本的后续步骤按预期工作?continue_element.visible?只返回元素是否存在。如果您只是删除了verify_cart方法的wait_until部分,那么根据您的脚本编写方式,即使链接不存在,verify_cart也可能通过。 -
@JustinKo 元素始终存在,它是可见的(我已经测试过了)。现在的问题是,当我将这个语句
continue_element.visible?放在wait_until块之外时,它通过了,但是当我把它放在里面时,它给出了超时错误。 -
我认为您需要提供更多有关问题的背景信息。我们需要查看 (1) 重现问题的 HTML 和相关的 Javascript 和 CSS,以及 (2) 您正在运行的测试。