嗨,每次我使用Net::ReadTimeout
时,如果没有这样的元素,我就会find_elements
。我的功能文件的简短示例:( cucamber)
Feature: Retest Faild Testcases
Scenario: Simpel test find_elements
Given open website humblebundle.com
And search for civilization
我的红宝石步骤文件:
Given /^open website (.*)$/ do |url|
$driver.navigate.to "http://www."+url
$wait = Selenium::WebDriver::Wait.new(:timeout => 180)
$wait.until {
$driver.find_element(:css => "div[class='navbar-content']").displayed?
}
end
And /^search for (.*)$/ do |name|
element=$driver.find_element(:css => "input[placeholder='Search']")
element.send_keys name
sleep(1)
element.send_keys :enter
sleep(10)
#line199 items=$driver.find_elements(:id => "Games")
puts items.count
end
我得到的错误:
Net :: ReadTimeout:Net :: ReadTimeout ./features/step_definitions/basic_steps.rb:199:in
/^search for (.*)$/' ./features/a_test.feature:4:in
并寻找文明'
我非常感谢你对此有任何帮助。
答案 0 :(得分:0)
默认情况下,请求的超时设置为60
秒。如果您的隐式等待设置设置为大于此值,如果找不到任何元素,您将获得Net::ReadTimeout
。您必须保持隐式等待设置小于请求超时。
答案 1 :(得分:0)
谢谢,就是这样。 我将隐式等待2个secends改为比我的ReadTimeout更小。