gpt4 book ai didi

java - 使用 selenium 处理弹出窗口

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:33:37 26 4
gpt4 key购买 nike

我有一种情况,点击链接网页会打开一个弹出窗口。在弹出窗口打开后,焦点位于弹出窗口中,主窗口被禁用。而且我无法将控件转移到弹出窗口。请查看以下代码。

driver.findElement(By.linkText("Click me")).click();// when this line of code is reached then a popup window opens.

System.out.println("After Clicking me"); // After the popup window opens this line of code is never executed.

我无法将控件从父窗口转移到弹出窗口。我知道以下命令。

driver.switchTo().window("popup window");

但这并没有多大帮助。请帮助我。

最佳答案

这是我在需要使用以下弹出窗口时使用的代码,关闭它并返回到我的主窗口。当然,为了这个答案的目的,它已经被简化了。它维护原始窗口(主)的句柄,因此它可以区分其他窗口。

它需要一个显式的 WebDriverWait,因为我在开发过程中确实遇到了代码在窗口实际打开之前运行的问题,所以这可能不是一个理想的条件,

function manipulatePopUp(final WebDriver driver, final WebDriverWait wait) {
final String mainWindowHandle = driver.getWindowHandle();
driver.findElement(By.id("linkThatOpensPopUp")).click();

wait.until(new ExpectedConditions<Boolean>() {
@Override
public Boolean apply(WebDriver d) {
return (d.getWindowHandles().size() != 1);
}
});

for (String activeHandle : driver.getWindowHandles()) {
if (!activeHandle.equals(mainWindowHandle)) {
driver.switchTo().window(activeHandle);
}
}

driver.close();
driver.switchTo().window(mainWindowHandle);
}

关于java - 使用 selenium 处理弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14939298/

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