我正在尝试自动化我的项目的登录场景。 点击 URL 后,甚至在页面加载之前就会出现 POPUP 身份验证窗口。 如果我们不通过该窗口,我们就看不到主页。
问题是一旦弹出窗口出现,我就无法使用 firebug 检查该元素,它不允许我单击其他任何地方。
我尝试处理该窗口,但控件仍然无法进入用户名和密码文本框。 我尝试了 windowhandle、机器人类,但不起作用。 请问有人可以帮忙吗??
这是一段代码:-
Set<String> handles = driver.getWindowHandles(); // get all window handles
System.out.println(handles.size());
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()){
subWindowHandler = iterator.next();
}
driver.switchTo().window(subWindowHandler);
also the robot class:-
Robot rb = new Robot();
//Enter user name by ctrl-v
StringSelection username = new StringSelection("myusername");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(username, null);
Thread.sleep(2000);
river.switchTo().window(mainHandle);
rb.keyPress(KeyEvent.VK_A);
rb.keyRelease(KeyEvent.VK_A);
rb.keyPress(KeyEvent.VK_M);
rb.keyRelease(KeyEvent.VK_M);
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 pass = new StringSelection("password");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pass, 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);
//wait
Thread.sleep(5000);
最佳答案
你可以做一件事。你可以尝试一下。
如果我们按 ESC 按钮,应用程序会多次停止处理。
点击事件后使用以下代码:-
Robot r = new Robot();
r.keyPress(KeyEvent.VK_ESCAPE);
r.keyRelease(KeyEvent.VK_ESCAPE);
上面的代码将为您按 ESC 键。现在您可以腾出时间来查找该元素。
希望对你有帮助:)
关于javascript - Selenium Webdriver 处理弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517254/