0

Please tell me the code for set user name and password for Authentication popup window

System.setProperty("webdriver.chrome.driver","Driver//chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://admin3-dev.ca.primus");
WebDriverWait wait = new WebDriverWait(driver, 10); 
Alert alert = wait.until(ExpectedConditions.alertIsPresent()); 
alert.authenticateUsing(new UserAndPassword("nsingh","Primus01"));

The user name and password is not passed in authentication popup on above code.Please tell me how to click on login button also.

parishodak
4,6964 gold badges37 silver badges49 bronze badges
asked Feb 2, 2016 at 15:33
2
  • You may have to switch to alert window in case its a new window or iframe. Commented Feb 2, 2016 at 15:52
  • I have handle this situation by using the robot class and when you run the script please do not touch mouse and keyboard. Commented May 31, 2018 at 9:59

5 Answers 5

2

You can directly pass the username and password in URL itself as below:-

driver.get("http://UserName:[email protected]");

Refer Below link:-

http://www.seleniumeasy.com/selenium-tutorials/how-to-handle-authentication-popup-in-selenium-webdriver

Hope it will help you :)

answered Feb 3, 2016 at 5:05

1 Comment

It is not working. Please tell me other option for FF.
1

i think that you must use Robot you can add this class

class SmartRobot extends Robot {
 public SmartRobot() throws AWTException {
 super();
 }
public void pasteClipboard() {
 keyPress(KeyEvent.VK_CONTROL);
 keyPress(KeyEvent.VK_V);
 delay(50);
 keyRelease(KeyEvent.VK_V);
 keyRelease(KeyEvent.VK_CONTROL);
}
public void type(String text) {
 writeToClipboard(text);
 pasteClipboard();
}
private void writeToClipboard(String s) {
 Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
 Transferable transferable = new StringSelection(s);
 clipboard.setContents(transferable, null);
}

}

and in your code change this

Alert alert = wait.until(ExpectedConditions.alertIsPresent()); 
alert.authenticateUsing(new UserAndPassword("nsingh","Primus01"));

by this

driver.switchTo().alert();
SmartRobot robot = new SmartRobot();
robot.type(USERNAME);
robot.keyPress(KeyEvent.VK_TAB);
robot.type(PASSWORD);
robot.keyPress(KeyEvent.VK_ENTER);
answered Feb 2, 2016 at 17:31

Comments

1

There are different solutions for different browsers but few programmatic solutions work for all browsers.

  • Some WebDrivers (Chrome, Firefox) can use user:pass@site syntax in the URL. Some will accept this syntax after registry hacks but will suffer stability problems (IE).
  • Some WebDrivers let you set a preferences in their profile (Firefox)
  • Some WebDrivers let you set modify their behaviour with extensions (Chrome)
  • Some WebDrivers let you interact with the authentication dialog via alert.authenticateUsing (only IE at the time of writing)
  • Some browser's WebDrivers cannot do any of the above at the time of writing (Edge)

Short of using a third-party GUI automation framework, something that should work in all browsers is to set up a proxy that can add a Basic Authentication header or arbitrary headers (such as BrowserMob Proxy, Fiddler, mitmproxy) and set the browser to proxy through it.

Also see How to perform Basic Authentication for FirefoxDriver, ChromeDriver and IEdriver in Selenium WebDriver? and answers linked from it.

answered Feb 9, 2017 at 17:05

Comments

0

I was facing Authentication Proxy pop-up issue in my project. So I tried below solution and it is working fine. When we run Script from Selenium Web driver on Security Environment following Setup needs to be done to handle Authentication Proxy.

First you need to know below details,

  • network.proxy.autoconfig_url (Example: http://example.com/abc.pac)
  • network.proxy.http (Example: abc-proxy.com)
  • network.proxy.http_port (Example: 8080)

private static WebDriver initFirefoxDriver(String appURL) 
{
 System.out.println("Launching Firefox browser..");
 FirefoxProfile firefoxProfile = new FirefoxProfile();
 firefoxProfile.setPreference("network.proxy.type", 1);
 firefoxProfile.setPreference("network.proxy.autoconfig_url", "http://example.com/abc.pac");
 firefoxProfile.setPreference("network.proxy.http", " abc-proxy.com");
 firefoxProfile.setPreference("network.proxy.http_port", 8080);
 WebDriver driver = new FirefoxDriver(firefoxProfile);
 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
 driver.manage().window().maximize();
 driver.navigate().to(appURL);
 //driver.get(appURL); 
 return driver;
}
Danh
6,0217 gold badges33 silver badges45 bronze badges
answered Nov 25, 2016 at 7:16

Comments

0

It works in chrome, still looking for firefox browser.

System.setProperty("webdriver.chrome.driver","Driver//chromedriver.exe");
 driver=new ChromeDriver();
 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
 driver.manage().window().maximize();
 driver.get("http://admin3-dev.magma.ca");
 Robot rb =new Robot();
 rb.keyPress(KeyEvent.VK_P);
 rb.keyRelease(KeyEvent.VK_P);
 rb.keyPress(KeyEvent.VK_C);
 rb.keyRelease(KeyEvent.VK_C);
 rb.keyPress(KeyEvent.VK_H);
 rb.keyRelease(KeyEvent.VK_H);
 rb.keyPress(KeyEvent.VK_A);
 rb.keyRelease(KeyEvent.VK_A);
 rb.keyPress(KeyEvent.VK_L);
 rb.keyRelease(KeyEvent.VK_L);
 rb.keyPress(KeyEvent.VK_L);
 rb.keyRelease(KeyEvent.VK_L); 
 rb.keyPress(KeyEvent.VK_A);
 rb.keyRelease(KeyEvent.VK_A);
 rb.keyPress(KeyEvent.VK_TAB);
 rb.keyRelease(KeyEvent.VK_TAB);
 rb.keyPress(KeyEvent.VK_CAPS_LOCK);
 rb.keyRelease(KeyEvent.VK_CAPS_LOCK);
 rb.keyPress(KeyEvent.VK_A);
 rb.keyRelease(KeyEvent.VK_A);
 rb.keyPress(KeyEvent.VK_CAPS_LOCK);
 rb.keyRelease(KeyEvent.VK_CAPS_LOCK);
 rb.keyPress(KeyEvent.VK_M);
 rb.keyRelease(KeyEvent.VK_M);
 rb.keyPress(KeyEvent.VK_M);
 rb.keyRelease(KeyEvent.VK_M);
 rb.keyPress(KeyEvent.VK_U);
 rb.keyRelease(KeyEvent.VK_U);
 rb.keyPress(KeyEvent.VK_L);
 rb.keyRelease(KeyEvent.VK_L);
 rb.keyPress(KeyEvent.VK_U);
 rb.keyRelease(KeyEvent.VK_U);
 rb.keyPress(KeyEvent.VK_1);
 rb.keyRelease(KeyEvent.VK_1);
 rb.keyPress(KeyEvent.VK_2);
 rb.keyRelease(KeyEvent.VK_2);
 rb.keyPress(KeyEvent.VK_TAB);
 rb.keyRelease(KeyEvent.VK_TAB);
 rb.keyPress(KeyEvent.VK_ENTER);`enter code here`
 rb.keyRelease(KeyEvent.VK_ENTER);
Hash
4,7155 gold badges24 silver badges40 bronze badges
answered Feb 4, 2016 at 9:10

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.