如何使用watir在弹出窗口中输入密码?

时间:2012-10-03 14:07:44

标签: ruby watir watir-webdriver headless xserver

我正在写一些watir测试用例:

browser.goto "http://egauge2592.egaug.es/"
browser.link(:href,"/settings.html").click
browser.text_field(:index,4).set("some text")
browser.button(:id,"save_button").click

然后打开“需要验证”对话框,询问用户名和密码。

无论我如何尝试,我都无法访问文本字段。

我尝试了send_keys和JavaScript。

我也试过了Watir.autoit,但它说的是未定义的方法。

我在使用FireFox浏览器的Ubuntu机器上使用watir。

如何填写该对话框的用户名和密码字段? 我能够使用browser.alert.set输入用户名,但只能设置用户名无法访问密码字段。

3 个答案:

答案 0 :(得分:2)

我最近编写了一个firefox插件来处理这个问题。我没有尝试过无头的Firefox,但它可能有用...值得一试。有关详细信息,请参阅以下内容:

http://www.natontesting.com/2012/10/06/firefox-plugin-test-automation-password-manager/

要使用watir,请尝试以下操作:

browser = Watir::Browser.new
#go to a page that won't bring up the authentication dialog...
browser.goto 'http://www.google.co.uk'

#prepare the script...
pass_man_update_script = <<-SCRIPT
var addCredentialsEvent = new CustomEvent("add_credentials_to_passman", {
  detail: {
    host: 'http://secure.example.com',
    username: 'bob',
    password: 'P45sword'
  }
});
window.dispatchEvent(addCredentialsEvent);
SCRIPT

#inject the script into the browser:
browser.execute_script pass_man_update_script

#go to the page that prompts the dialog box...
browser.goto "http://secure.example.com"
#you should now be past the dialog box!

答案 1 :(得分:2)

我使用watir-webdriver而这个(http://watirwebdriver.com/basic-browser-authentication/)对我有用。

答案 2 :(得分:1)

只需将您的基本身份验证凭据放入网址:

browser.goto "http://user:pass@egauge2592.egaug.es/"