gpt4 book ai didi

java - 切换到新窗口并再次进入 java 中的同一窗口(selenium webdriver)

转载 作者:行者123 更新时间:2023-11-30 09:16:37 24 4
gpt4 key购买 nike

String Parentwindow = driver.getWindowHandle();

driver.findElement(By.xpath("//*[@id='ImageButton5']")).click();
Thread.sleep(3000);

for(String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
Thread.sleep(3000);
}
System.out.println("Title of the page after - switchingTo: " + driver.getTitle());

driver.findElement(By.id("txtEnterCptCode")).sendKeys("99219");
//Thread.sleep(3000);
driver.findElement(By.id("btnSearch")).click();

我正在使用此代码切换到新窗口。但它显示错误为:

Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to find element with id == txtEnterCptCode (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 351 milliseconds

任何人都可以帮我解决这个问题。

最佳答案

调用 getWindowHandles() 返回的 Windows 句柄不保证以任何顺序排列。您的代码始终假定新打开的窗口将位于返回的句柄列表的末尾。你实际上想要像下面这样的东西:

// WARNING! Untested code written without benefit of an IDE.
// May not work exactly correctly, or even compile as-is.
String parentWindow = driver.getWindowHandle();

driver.findElement(By.xpath("//*[@id='ImageButton5']")).click();
Thread.sleep(3000);

for(String winHandle : driver.getWindowHandles()) {
if (!parentWindow.equals(winHandle)) {
driver.switchTo().window(winHandle);
Thread.sleep(3000);
break;
}
}
System.out.println("Title of the page after - switchingTo: " + driver.getTitle());

关于java - 切换到新窗口并再次进入 java 中的同一窗口(selenium webdriver),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19374693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com