为什么我得到超时错误而不是元素不存在?

时间:2013-10-09 07:35:27

标签: ruby rspec selenium-webdriver timeoutexception page-object-gem

我正在使用selenium Webdriver使用page-object gem测试Web应用程序。

在主页[开始页面]中,我有一些RSpec验证。但我得到以下错误而不是RSpec异常:

>Timeout::Error (Timeout::Error)
C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill'
C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1293:in `request'
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:745:in `start'

是否有人面临此问题?

1 个答案:

答案 0 :(得分:0)

我不熟悉ruby,没有代码就很难回答。但是我的猜测来了:

当您尝试访问DOM元素时,Selenium使用explicit and implicit waits的概念。所以我猜你在问题元素上使用了某种选择器,然后selenium试图找到它。它似乎不存在,因此Timeout被抛出。这种行为是预期的。