簡體   English   中英

在Find_Elements上的WebDriver Selenium ReadTimeout

[英]WebDriver Selenium ReadTimeout on Find_Elements

我建立了一個可運行數百頁的測試包。 我正在使用find_elements檢查頁面的呈現。 這應該只是返回一個數組並繼續測試。 但是我在最大客戶端超時后得到了ReadTimeout:

Net::ReadTimeout: Net::ReadTimeout
/home/ken/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/remote/http/default.rb:107:in `response_for'
/home/ken/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/remote/http/default.rb:58:in `request'
/home/ken/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
/home/ken/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/remote/bridge.rb:649:in `raw_execute'
/home/ken/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/remote/bridge.rb:627:in `execute'
/home/ken/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/remote/bridge.rb:606:in `find_elements_by'
/home/ken/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/search_context.rb:84:in `find_elements'

我不想讓WebDriver等待,請繼續。

如何捕捉或繞過此問題,以完成測試?

如果只想循環瀏覽頁面列表,則可以使用begin/rescue/end塊從超時中恢復(並可能打印出適當的消息)。 這是一個人為的示例,查找不存在的頁面元素:

require 'selenium-webdriver'
driver = Selenium::WebDriver.for :firefox   
driver.get 'http://www.iana.org/domains/reserved'

begin
  element = driver.find_element(:id, "element_does_not_exist")
rescue => e
  puts "element is not found"
end
# a single-line alternative:
# element = driver.find_element(:id, "element_does_not_exist") rescue

driver.quit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM