实例化后更改WebDriver :: Wait实例的超时

时间:2013-07-15 15:47:39

标签: ruby selenium-webdriver wait

我想知道以下是否可能以某种方式:

@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驱动程序。我可以改变现有的超时吗?

1 个答案:

答案 0 :(得分:1)

Selenium :: WebDriver :: Wait类没有提供任何修改超时的方法(即@timeout变量)。

如果你想修改它,你将不得不修补Selenium :: WebDriver :: Wait类:

require 'selenium-webdriver'
class Selenium::WebDriver::Wait
  attr_accessor :timeout
end

这样您就可以像@timeout中那样与janky_method变量进行互动。

注意:我不确定这种方法有什么好处而不仅仅是为特定场景创建新的等待。