How to enter password in a popup using watir?

2019-03-16 18:18发布

I'm writing some watir test cases:

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

then a 'Authentication Required' dialogue opens, asking for username and password .

No matter how I tried, I couldn't access the text fields.

I tried send_keys and JavaScript.

I also tried Watir.autoit but it says undefined method.

I'm using watir on a Ubuntu machine with the FireFox browser.

How to fill in username and password fields of that dialogue box? I was able to enter username with browser.alert.set but could only set username couldn't access password field.

3条回答
戒情不戒烟
2楼-- · 2019-03-16 18:58

I use watir-webdriver instead and this (http://watirwebdriver.com/basic-browser-authentication/) works for me.

查看更多
Root(大扎)
3楼-- · 2019-03-16 19:06

Just put your basic auth credentials in the url:

browser.goto "http://user:pass@egauge2592.egaug.es/"
查看更多
混吃等死
4楼-- · 2019-03-16 19:09

I wrote a firefox plugin to deal with this problem recently. I haven't tried it with headless Firefox, but it might work... worth a try. See the following for details:

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

To get it working with watir, try the following:

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!
查看更多
登录 后发表回答