当前位置: 首页 > 面试题库 >

如何使用Java处理Selenium WebDriver中的新窗口?

桂德义
2023-03-14
问题内容

这是我的代码:

driver.findElement(By.id("ImageButton5")).click();
//Thread.sleep(3000);
String winHandleBefore = driver.getWindowHandle();
driver.switchTo().window(winHandleBefore);
driver.findElement(By.id("txtEnterCptCode")).sendKeys("99219");

现在我有下一个错误:

线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到ID ==
txtEnterCptCode的元素(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:404毫秒。

有任何想法吗?


问题答案:

看来您实际上并没有切换到任何新窗口。您应该获得原始窗口的窗口句柄,将其保存,然后获取新窗口的窗口句柄并切换到该窗口。完成新窗口的操作后,您需要将其关闭,然后切换回原始窗口句柄。请参阅下面的示例:

String parentHandle = driver.getWindowHandle(); // get the current window handle
driver.findElement(By.xpath("//*[@id='someXpath']")).click(); // click some link that opens a new window

for (String winHandle : driver.getWindowHandles()) {
    driver.switchTo().window(winHandle); // switch focus of WebDriver to the next found window handle (that's your newly opened window)
}

//code to do something on new window

driver.close(); // close newly opened window when done with it
driver.switchTo().window(parentHandle); // switch back to the original window


 类似资料:
  • 我目前正在使用硒自动化应用程序,当单击按钮时会出现一个新的弹出窗口。我必须切换到该窗口并执行某些操作,例如搜索记录。 注意:父窗口和子窗口具有相同的标题。

  • 本文向大家介绍如何使用python处理Selenium中的子窗口?,包括了如何使用python处理Selenium中的子窗口?的使用技巧和注意事项,需要的朋友参考一下 我们可以处理Selenium中的子窗口或选项卡。在使用子窗口时,我们需要始终将浏览器焦点转移到子窗口上,然后对其进行操作。 默认情况下,焦点保持在第一个父窗口上。Selenium中有多种可用的方法,以下列出- current_win

  • 如何在selenium(java)中处理sweet alert弹出窗口- 在此处输入图像描述

  • 我正在使用C#在selenium web驱动程序中为Chrome浏览器编写一个自动化脚本。我陷入了一个场景:多个选项卡在同一浏览器中打开,我需要导航到浏览器的第一个选项卡,并需要在“身份验证”对话框中重新输入登录凭据。 授权窗口截图如下: 我无法导航到第一个选项卡,也无法传递用户名 执行上述代码后,将出现以下错误: WebDriver等待有一些无效的参数。参数2:不能从int转换为System.时

  • 问题内容: 我正在尝试在我的新Webdriver脚本之一中处理身份验证弹出窗口。我有一个适用于IE的有效解决方案,但我在Chrome方面苦苦挣扎。IE就像遵循[本页]的建议一样简单:如何使用Java使用Selenium WebDriver处理身份验证弹出窗口。尽管有几位评论者指出,该线程并没有显示出适用于Chrome的绝佳解决方案,但该解决方案不适用于Chrome。问题是,当您尝试在Chrome上

  • 问题内容: 我正在尝试使用以下代码处理身份验证弹出窗口: 当我执行测试时,页面会显示身份验证弹出窗口,并且仍会加载直到我单击“取消”按钮。那一刻,我可以访问下一页,这意味着身份验证成功,但仍然始终显示身份验证弹出窗口 问题答案: 警报方法使你可以跳过“ Http基本身份验证”框。 从Selenium 3.4开始,它仍处于beta版本 目前,仅针对