gpt4 book ai didi

java - Selenium FirefoxDriver - 如果使用 Geckodriver 单击关闭窗口,WebElement.click() 将被挂起

转载 作者:行者123 更新时间:2023-11-29 09:27:58 25 4
gpt4 key购买 nike

元:-

  • Selenium 3.3.1
  • Firefox v52.0.1(32 位)
  • Geckodriver v0.15.0(32 位)
  • Windows 10
  • Java v1.8_121(32 位)

我准备了两个 .html 来重现这个问题。

  • mainWindow.html

    <title>Main Window</title>
    <input type="submit" value ="Open Window" id="open" onclick="openWindow()">

    <script>
    function openWindow()
    {
    window.open("newWindow.html", "", "width=500,height=500");
    }

  • newWindow.html

    <title>New Window</title>
    <input type="submit" value="Close Window" id="close" onclick="closeWindow()">

    <script>
    function closeWindow()
    {
    window.close();
    }
    </script>

Selenium 转载步骤:-

System.setProperty("webdriver.gecko.driver", "geckodriverWin32-0.15.0.exe");

WebDriver driver = new FirefoxDriver();
driver.get("file:///mainWindow.html");
driver.manage().window().maximize();

driver.findElement(By.id("open")).click(); //This works fine

String curWindowHandle = driver.getWindowHandle();
Set<String> winHandles = driver.getWindowHandles();

for(String win : winHandles) {
if (!curWindowHandle.toString().equals(win)) {
driver.switchTo().window(win);
}
}

driver.findElement(By.id("close")).click(); //This click is getting hanged in infinity loop and my test case is not responded. No next line executed after this line.

问题:-为什么 WebElement.click()在这种情况下,如果单击事件将使用 FirefoxDriver 关闭 firefox 中的当前窗口,而在 chrome 上使用 ChromeDriver.

注意:-如果我将最后一行用作:-

((JavascriptExecutor)driver).executeScript("arguments[0].click()", driver.findElement(By.id("close")));

执行点击后,这一行也被挂起。

请有人建议我如何解决这个问题?

最佳答案

在末尾添加以下行(点击“关闭”后):

 driver.switchTo().window(curWindowHandle); //switching to mainWindow.htm

FF 挂起可能是因为它的焦点仍然在不再存在的窗口上。

关于java - Selenium FirefoxDriver - 如果使用 Geckodriver 单击关闭窗口,WebElement.click() 将被挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43061470/

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