4

我正在写一些 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 输入用户名,但只能设置用户名无法访问密码字段。

4

3 回答 3

2

我最近写了一个firefox插件来处理这个问题。我没有用 headless 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!
于 2012-10-16T23:03:09.813 回答
2

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

于 2012-10-24T22:46:09.150 回答
1

Just put your basic auth credentials in the url:

browser.goto "http://user:pass@egauge2592.egaug.es/"
于 2012-10-27T07:16:45.807 回答