【发布时间】:2013-02-16 08:49:52
【问题描述】:
我的两个场景——
1) 首先
@driver.manage.timeouts.implicit_wait = 30
@wait = Selenium::WebDriver::Wait.new(:timeout => 45) # Time greater than implicit
@wait.until {@driver.find_element(:tag_name => "body").text.include?("hey")}
这让驱动程序有 45 秒的时间来搜索文本(这是预期的)
2) 第二个
@driver.manage.timeouts.implicit_wait = 30
@wait = Selenium::WebDriver::Wait.new(:timeout => 5) # Time less than implicit
@wait.until {@driver.find_element(:tag_name => "body").text.include?("hey")}
这现在让驱动程序 30 秒 来搜索文本(不是预期的)
有没有办法让 selenium 只等待 explicit 等待时间而不是两者中的较大者?
注意 - 不声明隐式等待时间不是一种选择,因为每次驱动程序无法找到某些东西时,我都无法让 selenium 挂起。
使用 Selenium 版本 30、windows、ff
【问题讨论】:
-
The default setting is 0根据隐式等待文档,那么这里到底有什么问题? -
为什么不把隐式等待也设置为 5?
-
隐式等待帮助我对每个元素保持默认等待,因此不要将其保持在 5 秒以下。我想使用更短的等待时间(比如“wait_to_fail”)来检查元素 not 存在。
-
默认不是0。默认是30,你可以在com.thoughtworks.selenium.webdriven.WebDriverCommandProcessor.java类的第60行看到。旅鼠从哪里得到“0”?
标签: ruby selenium selenium-webdriver webdriver