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