当被问及元素是否存在时,Watir-webdriver 超时? [英] Watir-webdriver timing out when asked if element is present?

查看:22
本文介绍了当被问及元素是否存在时,Watir-webdriver 超时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  • Ruby 1.9.3p327
  • watir-webdriver 0.6.1

在全新的 Ruby 安装和全新的 webdriver 安装中,我无法使用等待或呈现?使用不存在的元素而不会导致非 Watir 超时错误.

On a fresh Ruby install, with a fresh webdriver install, I am unable to use wait or present? with nonpresent elements without causing non-Watir Timeout errors.

在下面的示例中,id 'gb_32' 在页面上,但被隐藏.ID 'gb_50000' 不存在.在这两种情况下,现在?"应该返回 false,但第二个在 60 秒后给我一个超时错误.任何想法为什么会发生这种情况?

In the below example, id 'gb_32' is on the page, but hidden. Id 'gb_50000' does not exist. In both cases "present?" should return false, but the second one gives me a timeout error after 60 seconds. Any ideas why this could happen?

    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

谢谢.

推荐答案

我会将此添加为评论,但显然我还不能.您使用的是 Firefox 17 吗?Watir-webdriver 尚不兼容 17,因此如果您尝试恢复到 Firefox 16,看看您的代码是否有效.我了解下周将发布用于解决此兼容性问题的 watir-webdriver 更新.

I'd add this as a comment but evidently I can't yet. Are you using Firefox 17? Watir-webdriver isn't yet compatible with 17, so if you are then try reverting to Firefox 16 and see if your code works. I understand that a watir-webdriver update to resolve this compatibility issue is being released next week.

这篇关于当被问及元素是否存在时,Watir-webdriver 超时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆