如何使用Selenium WebDriver处理登录弹出窗口?

shi*_*eti 34 alert popup selenium-webdriver

如何使用Selenium Webdriver处理登录弹出窗口?我在这里附上了示例屏幕.如何在此登录弹出/警告窗口中输入/输入用户名和密码?

感谢和问候, 在此输入图像描述

Pav*_*cek 37

使用您在URL请求中发送用户名和密码的方法:

http://username:password@the-site.com
Run Code Online (Sandbox Code Playgroud)

所以只是为了让它更清晰.用户名是username密码password,其余的是测试网站的常用URL

适合我,无需任何调整.

示例Java代码:

public static final String TEST_ENVIRONMENT = "the-site.com";
private WebDriver driver;

public void login(String uname, String pwd){
  String URL = "http://" + uname + ":" + pwd + "@" + TEST_ENVIRONMENT;
  driver.get(URL);
}

@Test
public void testLogin(){
   driver = new FirefoxDriver();
   login("Pavel", "UltraSecretPassword");
   //Assert...
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为这个解决方案对我来说没有用.因为用户名和密码登录产品后我的网址看起来像"http:// localhost:4040/lgserver/admin/operations/overview/index.jsp".所以这个解决方案可能不起作用. (2认同)
  • 但我想通过传递用户名和密码值来处理弹出窗口,然后单击“确定”按钮。能否请您提供示例代码以使用 webdriver 处理弹出窗口。 (2认同)

小智 8

这适用于Windows Server 2012和IE.

var alert = driver.SwitchTo().Alert();

alert.SetAuthenticationCredentials("username", "password");

alert.Accept();
Run Code Online (Sandbox Code Playgroud)


Ksh*_*sty 5

这在 WebDriver 3.0 中非常简单(目前处于 Beta 版)。

Alert alert = driver.switchTo().alert() ;
alert.authenticateUsing(new UserAndPassword(_user_name,_password));
driver.switchTo().defaultContent() ; 
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助。