gpt4 book ai didi

ruby - 如何使用 Watir::Waiter::wait_until 强制 Chrome 等待?

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:27 27 4
gpt4 key购买 nike

我试图告诉我的 watir 脚本等待注入(inject) 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?

Watir::Waiter 是一个仅限 IE 的类吗?或者我做错了什么,sleep 1 wait 方法工作得很好。我是 Ruby 和 watir 的新手,我昨天才刚学会这个,所以我有一半认为这是我的笨蛋的结果。

如果相关,我正在使用 mac(OSX v. 10.6.5)。

最佳答案

先做这个:

require "watir-webdriver/wait"

然后试试这些:

1

Watir::Wait.until { ... }

2

browser.text_field(:id => 'username').when_present.set("name")

3

browser.text_field(:id => 'username').wait_until_present

注意这里的“present”是指“元素既存在又可见”。

关于ruby - 如何使用 Watir::Waiter::wait_until 强制 Chrome 等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4356281/

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