1

对于使用 Webdriver、Java 和 Firefox 的以下问题,我需要一些帮助。

在测试中,当点击一个链接时, 1)它经常会打开一个带有正常网页的新窗口。或 2) 偶尔会在地址栏中打开一个新窗口,显示“about:blank”;20 到 60 秒后,新窗口将消失,并出现文件下载窗口。

由于 URL 是为 SEO 重写的,因此无法在单击链接之前或之后检查 URL,以确定链接是否连接到正常网页或可下载文件。

在这两种情况下,driver.getWindowHandles().size() == 2,所以我可以使用以下语句成功切换到新窗口,以检查新窗口中是否存在某个 WebElement。for (String winHandle : driver.getWindowHandles()) { driver.switchTo().window(winHandle); }

但是如果链接连接到一个可下载的文件,执行将挂起以下任何方法: findElement(By.xpath(“//html”)); findElements(By.tagName(“body”)); 获取当前网址();获取页面源();获取标题();获取窗口句柄();

getWindowHandles() 总是返回 2,而地址栏中带有“about:blank”的新窗口在被文件下载对话框替换之前出现。它偶尔会抛出 NoSuchWindowException 异常;但大多数时候,它只是挂起。我尝试了显式和隐式等待无济于事。

非常感谢山姆

4

1 回答 1

0

您是否尝试过设置以下首选项?(这将一起摆脱下载对话框)

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.manager.showWhenStarting",false);
FirefoxDriver driver = new FirefoxDriver(profile);              
于 2013-09-13T20:46:14.067 回答