下载PDF时,如何在Chrome浏览器中关闭下载弹出窗口

时间:2018-09-06 13:44:46

标签: java pdf selenium-webdriver selenium-chromedriver

我正在使用Java Selenium来自动化我的应用程序。我正在下载PDF并进行解析。我的应用程序中有多个使用PDF的测试用例。因此,一旦我下载了第一个PDF,Chrome就会在浏览器底部显示一个弹出窗口,表明该文件的下载名称是文件名,因此下次我尝试下载第二个PDF时,“下载”按钮位于该弹出窗口的下方,无法单击下载选项。 使用isDisplayed方法检查返回false的状态和isEnabled返回true的方法。尝试在另一个窗口中执行PDF测试用例也不起作用。请参考POP图片。

谢谢。

The pop-up I am talking about

3 个答案:

答案 0 :(得分:1)

谢谢您找到解决方案。我正在使用Robot类按下Control键和“ J”(使用Ctrl + J),这会在新标签页中打开下载文件。在我使用windowsHandle关闭新窗口并返回后到原始窗口。

//您的代码下载文件,下载文件后请使用以下代码

下面是我的代码

enter code here

         Robot bot =new Robot();
        Thread.sleep(1000);
         bot.keyPress(KeyEvent.VK_CONTROL);
         bot.keyPress(KeyEvent.VK_J);
         bot.keyRelease(KeyEvent.VK_CONTROL);
         bot.keyRelease(KeyEvent.VK_J);
        String winHandleBefore = driver.getWindowHandle();
      for(String winHandle : driver.getWindowHandles()){
        driver.switchTo().window(winHandle);

    }

答案 1 :(得分:0)

据我所知,无法使用Selenium / WebDriver在Chrome上关闭下载面板。可能还有其他解决方案供您考虑。例如:


1。使用操作链org.openqa.selenium.interactions.Actions移至要查找的元素
2。在新标签页中下载,然后在下载后关闭标签页,然后原始标签页没有下载栏。
3。打开chrome下载页面(使用Ctrl + J),然后将其关闭并返回首页,它没有下载栏。

对于此任务可能还有其他解决方案。

答案 2 :(得分:0)

另一个选择是使用可以控制UI对象的工具。其中一个免费软件是Auto-It。它可以识别浏览器的下载\上传窗口,对其进行控制,然后将其关闭。您可以编写脚本,构建脚本-并使用Java中的代码-在打开“下载\上传”窗口时调用它。