Java 弹出窗口关闭后面临的问题,父窗口元素无法单击

Java 弹出窗口关闭后面临的问题,父窗口元素无法单击,java,selenium,selenium-webdriver,webdriver,geckodriver,Java,Selenium,Selenium Webdriver,Webdriver,Geckodriver,操作系统: 视窗10 Selenium版本: 3.4.0 浏览器: Mozila Firefox 浏览器版本: 54.0.1 64位 GreckoDriver版本: v0.18.0 描述:弹出窗口后面临的问题。元素无法在下一窗口中单击 错误: 弹出窗口 By.name:btnClose [13,25,50] 在任务中引发并取消捕获了编码异常 完整消息:TypeError:尝试获取资源时出现NetworkError。 完整堆栈: 代码如下: public static File pathBinar

操作系统: 视窗10

Selenium版本: 3.4.0

浏览器: Mozila Firefox

浏览器版本: 54.0.1 64位

GreckoDriver版本: v0.18.0

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

错误:

弹出窗口 By.name:btnClose

[13,25,50]

在任务中引发并取消捕获了编码异常

完整消息:TypeError:尝试获取资源时出现NetworkError。 完整堆栈:

代码如下:

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();

我想你必须确保你已经切换回了主窗口手柄,在弹出窗口关闭后尝试使用这个

driver.switchTo().window(0);
然后尝试搜索元素

,或者您可以尝试:

再次切换到默认值

driver.switchTo().defaultContent();
要切换到帧,请执行以下操作:

driver.switchTo.frame("Frame_ID");

将来,如果可能的话,提供更多的代码,这样我们可以更好地理解您正在尝试做什么。似乎您的问题是将WebDriver的焦点切换到原始窗口。我使用的方法是:

创建一个数组以容纳所有窗口句柄:

关闭弹出窗口

将驾驶员焦点切换回原来的车窗

这应该会有帮助,除非我误解了您试图实现的目标。

代码块中的弹出窗口在哪里?谢谢
ArrayList<String> windowhandlesArray = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(windowhandlesArray.get(1));
driver.close();
driver.switchTo().window(windowhandlesArray.get(0));