【问题标题】:Issue Facing after POPUP window closed, parent window element is not able to click弹出窗口关闭后面临的问题,父窗口元素无法单击
【发布时间】:2017-12-23 08:46:56
【问题描述】:

操作系统: 视窗 10

硒版本: 3.4.0

浏览器: Mozilla Firefox

浏览器版本: 54.0.1(64 位)

GreckoDriver 版本: v0.18.0

描述:弹出窗口后面临的问题。元素无法在下一个窗口中单击。

错误:

弹出窗口 By.name: btnClose

[13、25、50]


在任务中引发了编码异常并且未被捕获。

完整消息:类型错误:尝试获取资源时出现网络错误。 全栈:


代码如下:

public static File pathBinary = new File("C:\\program files\\Mozilla Firefox\\firefox.exe");
    public static FirefoxBinary firefoxBinary = new FirefoxBinary(pathBinary);

    @SuppressWarnings("deprecation")
    public static WebDriver driver = new FirefoxDriver(firefoxBinary);

    public static WebDriverWait wait =new WebDriverWait(driver,60);
    public static String MainWindow=driver.getWindowHandle();

【问题讨论】:

  • 您的代码块中的POPUP window 在哪里?谢谢

标签: java selenium selenium-webdriver webdriver geckodriver


【解决方案1】:

将来,请提供更多代码(如果可能),以便我们更好地了解您想要做什么。您的问题似乎是将 WebDriver 的焦点切换到原始窗口。我这样做的方法是:

创建一个数组来保存所有窗口句柄:

ArrayList<String> windowhandlesArray = new ArrayList<String> (driver.getWindowHandles());

将驱动焦点切换到新打开的弹出窗口

driver.switchTo().window(windowhandlesArray.get(1));

关闭弹出窗口

driver.close();

将驱动程序焦点切换回原始窗口

driver.switchTo().window(windowhandlesArray.get(0));

这应该会有所帮助,除非我误解了您要完成的工作。

【讨论】:

    【解决方案2】:

    我认为您必须确保已切换回主窗口句柄,然后在弹出窗口关闭后尝试使用它。

    driver.switchTo().window(0);
    

    然后尝试搜索元素

    【讨论】:

      【解决方案3】:

      或者你可以试试:

      再次切换到默认值。

      driver.switchTo().defaultContent();
      

      切换到框架:

      driver.switchTo.frame("Frame_ID");
      

      【讨论】:

        猜你喜欢
        • 2013-07-25
        • 1970-01-01
        • 2012-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多