我需要使用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异常;但大多数时候,它只是挂起。我尝试了显式和隐式等待无济于事。
非常感谢 萨姆
答案 0 :(得分:0)
您是否尝试过设置以下偏好设置? (这将一起摆脱下载对话框)
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.manager.showWhenStarting",false);
FirefoxDriver driver = new FirefoxDriver(profile);