首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启动浏览器时如何处理Rspec中的身份验证弹出窗口

启动浏览器时如何处理Rspec中的身份验证弹出窗口
EN

Stack Overflow用户
提问于 2013-05-09 19:32:12
回答 2查看 875关注 0票数 0

我正在测试的网站要求用户登录,这是由user服务器处理的,而不是HTML表单,因此它在浏览器中生成一个身份验证弹出窗口。

我尝试做了以下几件事

代码语言:javascript
复制
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  

但是代码不起作用......在启动浏览器时,我需要处理带有用户名和password.....any建议的窗口弹出?我是Rspec ...using Ruby的新手

EN

回答 2

Stack Overflow用户

发布于 2013-05-10 00:03:32

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

由于您正在与之交互的UI位相当简单,因此您可能只需通过索引来引用内容。

我推荐使用IRB来做一些实验,这是最好的尝试方式,看看会发生什么,你可以更容易地检查窗口,一次实验一行代码,看看会发生什么。很有可能你最终会得到这样的结果(未经测试,我猜cancel按钮是索引0,登录按钮是索引1)

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-05-20 01:19:29

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

代码语言:javascript
复制
$browser.goto('http://username:password@qa.outbidhq.com')

在这种情况下,应该不会出现身份验证对话框,您应该立即通过身份验证。对此功能的支持取决于浏览器本身,因此在使用Watir尝试之前,您可以通过使用正确的用户名和密码转到url来手动尝试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16460771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档