gpt4 book ai didi

java - 很难专注于 Selenium 中新打开的窗口

转载 作者:行者123 更新时间:2023-12-01 18:48:44 25 4
gpt4 key购买 nike

我无法专注于使用 selenium 和 java 新打开的窗口。我正在使用 Internet Explorer 来运行我的应用程序。新窗口正在打开,但无法在新窗口上执行任何操作。我尝试过

Set<String> allwindows = driver.getWindowHandles();

但问题仍然没有解决。

下面是我正在使用的代码。

driver.get("www.tririga.com");
String parentwindow=driver.getWindowHandle();
driver.findElement(By.id("login")).click();

for(String childwindow: driver.getWindowHandles()) {
driver.switchto().window(childwindow);
driver.findElement(By.id("submit")).click();
driver.close();
}

driver.switchto().window(parentwindow);
driver.close();

最佳答案

您需要检查您是否没有使用第一个窗口句柄进行切换。您还可以通过显式等待等待新窗口打开

WebDriverWait wait = new WebDriverWait(driver, 10);

driver.findElement(By.id("login")).click();

wait.until(ExpectedConditions.numberOfWindowsToBe(2));
for(String childwindow: driver.getWindowHandles()) {
if (!childwindow.equals(parentwindow)) {
driver.switchto().window(childwindow);
driver.findElement(By.id("submit")).click();
driver.close();
}
}

driver.switchto().window(parentwindow);
driver.close();

如果这是代码的结尾,并且您只想关闭所有窗口,只需使用 quit()

Quits this driver, closing every associated window.

for(String childwindow: driver.getWindowHandles()) {
if (!childwindow.equals(parentwindow)) {
driver.switchto().window(childwindow);
driver.findElement(By.id("submit")).click();
}
}

driver.quit();

关于java - 很难专注于 Selenium 中新打开的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59771142/

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