0

我正在测试的网站需要用户登录,这是由网络服务器而不是 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

4

2 回答 2

1

HTTP Basic Authentication您可以在 URL 中指定用户名和密码:

$browser.goto('http://username:password@qa.outbidhq.com')

在这种情况下,身份验证对话框不应出现,您应该立即进行身份验证。对此功能的支持取决于浏览器本身,因此您可以在使用Watir.

于 2013-05-19T17:19:28.853 回答
1

RAutomation 是一个使用与 watir 非常相似的 API 提供 UI 自动化的库。它理解文本字段、按钮等事物的概念。您可以查看rdoc,或者我在学习新代码库时发现有帮助的另一件事是查看测试

由于您正在与之交互的 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 
于 2013-05-09T16:03:32.170 回答