Webdriver在新窗口中挂起,地​​址栏中有“about:blank”,转换到文件下载对话框

时间:2013-09-13 18:57:22

标签: java firefox selenium-webdriver

我需要使用Webdriver,Java和Firefox来解决以下问题。

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

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

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

但是如果链接连接到可下载文件,则执行将挂起以用于以下任何方法:     findElement(By.xpath(“// HTML”));     findElements(By.tagName(“正文”));     getCurrentUrl();     getPageSource();     的getTitle();     getWindowHandle();

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

非常感谢 萨姆

1 个答案:

答案 0 :(得分:0)

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

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.manager.showWhenStarting",false);
FirefoxDriver driver = new FirefoxDriver(profile);