好吧,我想对 watir-webdriver wait for page load> 这个主题发表评论,但由于我有 1 个代表,所以我不能。
我正在将 watir 脚本升级到 watir-webdriver,我在 Firefox 上运行的第一个测试结果如下:
Selenium::WebDriver::Error::NoSuchElementError: Unable to locate element: {"method":"tag name","selector":"body"}
当我所做的就是登录我的应用程序(运行良好),单击“构建信息”链接,然后执行以下操作:
@browser.text
这种情况一直在发生。读完这里后,我在点击之后和 @browser.text 之前进行了睡眠,它起作用了。我的结论显然是 Firefox 驱动程序不会等到页面加载后再尝试
-> POST session/8607aaa2-d72d-448a-85e1-3f96a1766da1/element
{"value":"body","using":"tag name"}
所以我的问题是这是一个孤立的事件(调用@browser.body,这不是一个完全典型的调用)还是我必须使用等待?如果我不能指望驱动程序等到浏览器处于就绪状态,那么 watir 的全部魅力似乎就消失了。另外,是否有一个 dev google 小组或类似的 watir-webdriver 小组?我有预感我会看到越来越多的问题(其中几个与 IE9 相关)。我可能还会在阿利斯特的博客上询问(顺便说一句,这很不错)。
Watir-WebDriver 应该等到页面准备好,但问题是太多内容是动态生成的,实际上并没有一个明确的准备好定义。
这就是等待辅助方法的亮点:http://watirwebdriver.com/waiting/ 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
Update:
我认为你的问题与本机事件相关。尝试禁用本机事件
profile = Selenium::WebDriver::Firefox::Profile.new
profile.native_events = false
b = Watir::Browser.new WEB_DRIVER, :profile => profile
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)