kar*_*m79 16 ruby watir watir-webdriver
我试图告诉我的watir脚本等待ajax注入的登录框打开.我正在使用watir-webdriver,并在Chrome中进行测试.我无法开始wait_until工作,如下面(简化)脚本中所评论的那样.
require "rubygems"
require "watir-webdriver"
b = Watir::Browser.new(:chrome)
site = "www.example.com"
b.goto site
puts "Click on Sign In button"
b.link(:id, 'btnLogin').click
puts "Waiting for the username/password dialog to show up"
# Below line does *not* work
# Throws this error: "uninitialized constant Watir::Waiter (NameError)"
Watir::Waiter::wait_until { b.text_field(:id, 'username').exists? }
# Below line does *not* work
# Throws this error: "undefined method `wait_until' for main:Object (NoMethodError)"
wait_until { b.text_field(:id, 'username').exists? }
# Below line *does* work, but I don't want to use it.
sleep 1 until b.text_field(:id, 'username').exists?
Run Code Online (Sandbox Code Playgroud)
是Watir::WaiterIE专用课吗?或者我做错了什么,sleep 1等待方法运行得很好.我是Ruby和watir的新手,我昨天刚刚接受了这个,所以我有一半期待这是我不忠的结果.
如果它是相关的,我正在使用mac(OSX v.10.6.5).
jar*_*rib 27
首先这样做:
require "watir-webdriver/wait"
Run Code Online (Sandbox Code Playgroud)
然后试试这些:
Watir::Wait.until { ... }
Run Code Online (Sandbox Code Playgroud)
browser.text_field(:id => 'username').when_present.set("name")
Run Code Online (Sandbox Code Playgroud)
browser.text_field(:id => 'username').wait_until_present
Run Code Online (Sandbox Code Playgroud)
请注意,"present"在这里表示"元素既存在又可见".
| 归档时间: |
|
| 查看次数: |
20370 次 |
| 最近记录: |