我正在测试的网站要求用户登录,这由网络服务器而不是HTML表单处理,因此它会在浏览器中生成一个身份验证弹出窗口。
我尝试过以下
before(:each) do
$browser = Watir::Browser.new :firefox
$browser.driver.manage.window.maximize
$browser.goto('http://qa.outbidhq.com')
popup = RAutomation::Window.new(:title => /Authentication/i)
popup.send_keys('XXXXXX') # USER ID
popup.send_keys :tab
popup.send_keys('YYYYYYYYY') # PASSWORD
popup.send_keys :tab
popup.send_keys :enter
sleep(15)
end
但代码不能正常工作........ 在启动浏览器时,我需要处理弹出的用户名和密码窗口.....任何建议??????我是Rspec的新手......使用Ruby
答案 0 :(得分:1)
RAutomation是一个使用与watir非常相似的API提供UI自动化的库。它理解文本字段,按钮等内容的概念。您可以查看rdoc,或者在学习新代码库时我发现有用的其他内容是查看tests
由于您与之交互的UI位非常简单,因此您可以通过索引来引用内容。
我建议使用IRB进行一些实验,这是尝试事情的最佳方式,看看会发生什么你可以更容易地检查窗口并一次试验一行代码,看看会发生什么。可能你会得到类似的结果(未经测试,我猜测取消按钮是索引0而登录按钮是索引1)
popup = RAutomation::Window.new(:title => /Authentication/i)
popup.text_field(:index => 0).set('XXXXXX') # USER ID
popup.text_field(:index => 1).set('YYYYYYYYY') # PASSWORD
popup.button(:index => 1).click
答案 1 :(得分:1)
您可以在网址中指定HTTP Basic Authentication
的用户名和密码:
$browser.goto('http://username:password@qa.outbidhq.com')
在这种情况下,不应出现身份验证对话框,您应该立即进行身份验证。对此功能的支持取决于浏览器本身,因此您可以使用正确的用户名和密码手动尝试,然后再使用Watir
进行尝试。