OS: Windows 10
Selenium版本: 3.4.0
浏览器: Mozila Firefox
浏览器版本: 54.0.1(64位)
GreckoDriver版本: v0.18.0
描述:问题面对POPUP窗口后。元素无法在下一个窗口中单击。
ERROR:
POPUP 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();
答案 0 :(得分:1)
将来,提供更多代码(如果可能),以便我们更好地了解您的目标。看起来您的问题是将WebDriver的焦点切换到原始窗口。我用来做这个的方法是:
创建一个数组以容纳所有窗口句柄:
ArrayList<String> windowhandlesArray = new ArrayList<String> (driver.getWindowHandles());
将驱动程序焦点切换到新打开的弹出窗口
driver.switchTo().window(windowhandlesArray.get(1));
关闭弹出窗口
driver.close();
将驱动程序焦点切换回原始窗口
driver.switchTo().window(windowhandlesArray.get(0));
这应该有所帮助,除非我误解了你想要完成的事情。
答案 1 :(得分:0)
我认为你必须确保你已经切换回主窗口句柄,在弹出窗口关闭后尝试使用它。
driver.switchTo().window(0);
然后尝试搜索元素
答案 2 :(得分:0)
或者你可以尝试:
再次切换到默认值。
foo_ids = Foo.objects.annotate(first_c=Count('first'), second_c=Count('second')).filter(first_c__gt=1, second_c__gt=1).values('first', 'second', 'id')
切换到一个框架:
driver.switchTo().defaultContent();