点击网址

时间:2016-05-26 09:13:32

标签: google-chrome selenium authentication automation browser-automation

我在selenium,java框架中编写UI自动化测试用例。在没有实现身份验证之前,我能够毫无问题地运行所有测试用例。执行身份验证后,他们引入了用户名和密码以及登录按钮。现在我无法在Chrome浏览器中运行任何UI自动化测试,我得到一个白色身份验证框,当我通过自动化脚本点击URL时,服务器xxxx需要用户名和密码。它会阻止selenium脚本点击网页上的任何位置。

同时我可以在Chrome浏览器中手动正常工作。我可以点击登录图标。

2 个答案:

答案 0 :(得分:0)

嗨,对于webdriver工作,您必须在身份验证框中传递用户名和密码,您可以像下面这样做

方式1:使用Selenium Alert

Alert alt = driver.switchTo().alert();   
alt.authenticateUsing(new UserAndPassword(uid, pwd));

方式2:直接在网址中传递用户名和密码

driver.get("http://username:password@yoururl.com");

方式3:使用java的机器人类

 Robot rb = new Robot();

     //Enter user name by ctrl-v
     StringSelection username = new StringSelection("username");
     Toolkit.getDefaultToolkit().getSystemClipboard().setContents(username, null);            
     rb.keyPress(KeyEvent.VK_CONTROL);
     rb.keyPress(KeyEvent.VK_V);
     rb.keyRelease(KeyEvent.VK_V);
     rb.keyRelease(KeyEvent.VK_CONTROL);

     //tab to password entry field
     rb.keyPress(KeyEvent.VK_TAB);
     rb.keyRelease(KeyEvent.VK_TAB);
     Thread.sleep(2000);

     //Enter password by ctrl-v
     StringSelection pwd = new StringSelection("password");
     Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pwd, null);
     rb.keyPress(KeyEvent.VK_CONTROL);
     rb.keyPress(KeyEvent.VK_V);
     rb.keyRelease(KeyEvent.VK_V);
     rb.keyRelease(KeyEvent.VK_CONTROL);

     //press enter
     rb.keyPress(KeyEvent.VK_ENTER);
     rb.keyRelease(KeyEvent.VK_ENTER); 

希望这有助于你

答案 1 :(得分:0)

您是否尝试在基本网址链接中添加用户和密码,例如:http://user:password@your_domain