在花了一整天的时间试图弄清楚如何处理 Watir 中的安全弹出警报之后,我基本上碰壁了。
我正在尝试制作一个非常简单的脚本来登录到这个 HTTPS 站点,它会抛出我无法通过的弹出警报。
要查看此消息,请键入:此站点上的“弹出安全警报”“https://www.google.com/cse/home?cx=007267089725385613265:gmydx5gtw6u”
我试过的是这样的:
在 Firefox 中的“about:config”中完全禁用此消息,但这是不可能的,因为警告仍然会弹出。
我已尝试要求“WindowsHelper”和“WindowsClicker”,如本页所示:http://rubyforge.org/pipermail/wtr-general/2007-February/009181.html我看到该文档相当旧。
还找到了一个在消息框上使用“.use”然后单击它的示例,但这没有帮助。
在 2 和 3 中,我编写的代码可能是错误的,因为我不是 Watir 的专家。
我现在的代码是这样的:
require 'rspec'
require 'watir-webdriver'
SITE = "https://anypage.com"
BROWSER = Watir::Browser.start(SITE, :firefox)
Given /^I am on the login page for anypage$/ do
BROWSER.goto(SITE)
end
When /^I successfully log in as a user$/ do
BROWSER.text_field(:name => 'UserName').set 'USERNAME'
BROWSER.text_field(:name => 'Password').set 'PASSWORD'
BROWSER.button(:class => 'btn btn-lg btn-primary btn-block').click
**MustHandlePopUpHere**
BROWSER.do_more
end
如果这很重要,我将使用 WatirWebdriver 版本 0.6.8 和 Ruby 版本 1.9.3。
Watir 有一个用于处理警报的 API。您可以使用以下方式确认警报:
BROWSER.alert.ok
这是 Watir 搜索页面的一个工作示例:
require 'watir'
# Go to the page
browser = Watir::Browser.new :firefox
browser.goto 'https://www.google.com/cse/home?cx=007267089725385613265:gmydx5gtw6u'
# Input the search
browser.text_field(:id => 'q').set('security alert pop up')
browser.button(:value => 'Search').click
# Confirm the popoup
browser.alert.ok
您可以在以下位置阅读有关警报 API 的更多信息:
我是一名优秀的程序员,十分优秀!