gpt4 book ai didi

firefox - 为什么我必须使用 watir-webdriver 和 firefox sleep 或等待?

转载 作者:行者123 更新时间:2023-12-05 00:37:04 24 4
gpt4 key购买 nike

好吧,我想评论 watir-webdriver 等待页面加载>这个主题,但由于我有 1 个代表,我不能。

我正在将我的 watir 脚本升级到 watir-webdriver 并且我在 Firefox 上运行的第一个测试产生了:

Selenium::WebDriver::Error::NoSuchElementError: Unable to locate element: {"method":"tag name","selector":"body"}

当我所做的只是登录我的应用程序(运行良好),单击 Build Info 链接,然后执行以下操作时:
@browser.text

这一直发生。在这里阅读后,我在点击之后和 @browser.text 之前睡了一个觉,它起作用了。我的结论显然是 Firefox 驱动程序不会等到页面加载后再尝试
-> POST session/8607aaa2-d72d-448a-85e1-3f96a1766da1/element
{"value":"body","using":"tag name"}

所以我的问题是这是一个孤立的事件(调用@browser.body,这不是一个完全典型的调用)还是我将不得不使用等待?如果我不能指望驱动程序等到浏览器处于就绪状态,那么似乎整个 watir 的美都消失了。另外,是否有一个开发谷歌组或类似的 watir-webdriver 组?我感觉我会看到越来越多的问题(IE9 有几个)。我可能还会在 Alister 的博客上提问(顺便说一句,这很摇滚)。

最佳答案

Watir-WebDriver 应该等到页面准备好,但问题是动态生成的内容太多,确实没有一个明确的准备好的定义。

这就是等待助手方法的亮点:http://watirwebdriver.com/waiting/

找到一个你知道你期望的元素,并使用类似的东西:

require 'watir-webdriver'
b = Watir::Browser.start 'bit.ly/watir-webdriver-demo'
b.select_list(:id => 'entry_1').wait_until_present

更新:

我认为您的问题与本地事件有关。尝试禁用 native 事件
profile = Selenium::WebDriver::Firefox::Profile.new
profile.native_events = false
b = Watir::Browser.new WEB_DRIVER, :profile => profile

关于firefox - 为什么我必须使用 watir-webdriver 和 firefox sleep 或等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7424645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com