我想知道以下是否可能以某种方式:
@wait = Selenium::WebDriver::Wait.new timeout: 10
# ...do stuff...
# Stuff gets really slow here. Better increase the timeout.
def janky_method()
old_timeout = @wait.timeout
@wait.timeout += 50
e = @wait.until { @selenium.find_element :css, 'div#page-loads-rock' }
@wait.timeout = old_timeout
e
end
到目前为止,我见过的唯一解决方案是启动一个新的Wait
驱动程序。我可以改变现有的超时吗?
答案 0 :(得分:1)
Selenium :: WebDriver :: Wait类没有提供任何修改超时的方法(即@timeout
变量)。
如果你想修改它,你将不得不修补Selenium :: WebDriver :: Wait类:
require 'selenium-webdriver'
class Selenium::WebDriver::Wait
attr_accessor :timeout
end
这样您就可以像@timeout
中那样与janky_method
变量进行互动。
注意:我不确定这种方法有什么好处而不仅仅是为特定场景创建新的等待。