Handling Browser Authentication using Selenium
EDIT in 2015:
This answer is outdated. WebDriver nowadays supports authentication! See How to handle authentication popup with Selenium WebDriver using Java
Original answer:
This is not handled very well by Selenium.
You can try using http://username:password@example.com/yourpage
instead of just http://example.com/yourpage
However, as far as I know, Firefox will still pop up a browser dialog requesting a confirmation.
You can try Robot if you're using Java (or any similar tool like AutoIt).
You could use driver.manage().addCookie()
if you're using WebDriver.
Or a custom FirefoxProfile that has already passed the authentication once.
I spent days on this - literally.Trying to get past browser level authentication within my company network to hit an application.The solution was to use the 'unsername:password@' component within the URL, BUT to add a forward slash at the end of the login URL.
So total login URL looks like this (note the '/' after yourpage):
http://username:password@example.com/yourpage/
Works with Watir, Capybara and Selenium Webdriver.
Everything I have read on the Web didn't help me. So before making a request, like this:
driver.get(url);
you have to run a new thread like this:
RunScript runScript = new RunScript();runScript.start();
In this case you are free to input login and password on another thread of follwing class
public class RunScript extends Thread {@Overridepublic void run() { try { File file = new File("D:\\jacob-1.18-x86.dll"); System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath()); AutoItX autoIt = new AutoItX(); Thread.sleep(2000); autoIt.winActivate("yourWindowName", ""); autoIt.winWaitActive("yourWindowName"); if (autoIt.winExists("yourWindowName")) { autoIt.send("username{TAB}", false); autoIt.send("password{Enter}", false); } } } catch (InterruptedException ex) { // }}}