当询问元素是否存在时,Watir webdriver超时? Ruby 1.9.3p327 watir webdriver 0.6.1

当询问元素是否存在时,Watir webdriver超时? Ruby 1.9.3p327 watir webdriver 0.6.1,ruby,watir,watir-webdriver,Ruby,Watir,Watir Webdriver,在新的Ruby安装和新的webdriver安装中,我无法使用wait或present?使用非当前元素,而不会导致非Watir超时错误 在下面的示例中,id“gb_32”位于页面上,但处于隐藏状态。Id“gb_50000”不存在。在这两种情况下,“present?”都应该返回false,但第二个在60秒后给我一个超时错误。 你知道为什么会这样吗 irb(main):014:0> b.link(:id,'gb_32').present? => false irb(

在新的Ruby安装和新的webdriver安装中,我无法使用wait或present?使用非当前元素,而不会导致非Watir超时错误

在下面的示例中,id“gb_32”位于页面上,但处于隐藏状态。Id“gb_50000”不存在。在这两种情况下,“present?”都应该返回false,但第二个在60秒后给我一个超时错误。 你知道为什么会这样吗

    irb(main):014:0> b.link(:id,'gb_32').present?
    => false
    irb(main):015:0> b.link(:id,'gb_50000').present?
    Timeout::Error: Timeout::Error
            from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill'
            from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
            from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
            from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
            from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'
            from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
            from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'
            from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
            from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
            from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1293:in `request'
            from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'
            from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:745:in `start'
            from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1284:in `request'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/default.rb:82:in `response_for'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/default.rb:38:in `request'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:598:in `raw_execute'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:576:in `execute'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:544:in `find_element_by'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/common/search_context.rb:42:in `find_element'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/locators/element_locator.rb:247:in `by_id'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/locators/element_locator.rb:26:in `locate'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/elements/element.rb:384:in `locate'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/elements/element.rb:362:in `assert_exists'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/elements/element.rb:37:in `exists?'
            from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/elements/element.rb:296:in `present?'
    from (irb):15

谢谢。

我想加上这个作为评论,但显然我还不能。你在使用Firefox17吗?Watir webdriver与Firefox 17尚不兼容,因此如果您需要,请尝试还原到Firefox 16,看看您的代码是否正常工作。我知道下周将发布解决此兼容性问题的watir webdriver更新。

我想添加此作为评论,但显然我还不能。你在使用Firefox17吗?Watir webdriver与Firefox 17尚不兼容,因此如果您需要,请尝试还原到Firefox 16,看看您的代码是否正常工作。据我所知,下周将发布解决此兼容性问题的watir webdriver更新。

我通过在“present?”和“until”方法中使用显式超时,暂时拼凑出了一个混乱。类似这样的事情:
Timeout::Timeout(input\u Timeout=1)do#这里的默认webdriver命令;结束;救援超时::错误;提高定时误差;结束
你能分享到页面或相关HTML的链接吗?我想这取决于网络驱动程序。我看到的网页是“www.google.com”。当我尝试查找是否存在时,故障仍然出现在“about:blank”上?还是现在?对于非present元素,我通过在“present”和“until”方法中使用显式超时,暂时拼凑出了一个混乱。类似这样的事情:
Timeout::Timeout(input\u Timeout=1)do#这里的默认webdriver命令;结束;救援超时::错误;提高定时误差;结束
你能分享到页面或相关HTML的链接吗?我想这取决于网络驱动程序。我看到的网页是“www.google.com”。当我尝试查找是否存在时,故障仍然出现在“about:blank”上?还是现在?对于非当前元素。感谢您的回复。我已经完全重新安装了Windows,这似乎解决了这个问题。我相信这是以前笔记本电脑用户的某种间谍软件/恶意软件的副作用。是的,当webdriver本身试图与浏览器对话时,特定的错误文本没有说明超时时它试图做什么(如等待某个元素),这似乎表明超时。。问题就在后面。不在您的代码或网页中。。正是webdriver和浏览器之间的通信导致了超时感谢您的响应。我已经完全重新安装了Windows,这似乎解决了这个问题。我相信这是以前笔记本电脑用户的某种间谍软件/恶意软件的副作用。是的,当webdriver本身试图与浏览器对话时,特定的错误文本没有说明超时时它试图做什么(如等待某个元素),这似乎表明超时。。问题就在后面。不在您的代码或网页中。。是webdriver和浏览器之间的通信导致超时