java - Selenium:保存在新浏览器中打开的没有 url 的 pdf

标签 java selenium pdf selenium-webdriver

有人可以指导我如何实现以下目标:

我正在使用 selenium Web 驱动程序 java。

每当我单击网页上的预览按钮时,pdf 都会在新浏览器中打开,并且我需要使用动态给定的名称保存该 pdf。

到目前为止,我可以单击预览按钮,并打开一个包含 pdf 的新浏览器。这里浏览器没有url。

打开 pdf 后,我将发送按键 control+s。

然后出现保存对话框窗口。我被困在这里关于如何将 pdf 保存到本地驱动器。

主要浏览器是 IE,但我首先尝试使用 Firefox

enter image description here

最佳答案

您可以尝试此代码:-我认为这就是您正在寻找的。如果这正是您所期望的,请告诉我。

System.setProperty("webdriver.gecko.driver", "D:/geckodriver.exe");
    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf");
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);    

    Thread.sleep(2000);
    java.awt.Robot robot = new java.awt.Robot();
    Thread.sleep(1000);
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_S);
    robot.keyRelease(KeyEvent.VK_S);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    Thread.sleep(2000);
    robot.keyPress(KeyEvent.VK_ENTER);
    Thread.sleep(2000);     
    robot.keyPress(KeyEvent.VK_TAB);   // file replace move to yes button
    Thread.sleep(2000);
    robot.keyPress(KeyEvent.VK_ENTER); // hit enter

首先执行代码,看看它是否有效,是否是您想要的。

最后三行代码是为了替换现有的 pdf 文件而编写的。因此,您只需首先注释这三行,执行代码,然后从下一次开始,包含最后三行代码

您需要使用Robot Class来处理事件。 让我知道这对您来说是否有效。

关于java - Selenium:保存在新浏览器中打开的没有 url 的 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45240294/

相关文章:

python - 无法选择值 - 错误 "Select only works on <select> elements, not on <a>"

java - Spring Boot JAR 应用程序未从资源文件夹中读取 chromedriver.exe

pdf - 使用 ImageMagick 将 PDF 转换为 PNG

java - 将 Windows 文件目录与 JTable 匹配

java - pdfBox 之后我无法删除文件

java - 使用 selenium.open() 打开带参数的 URL

java - 如何在不修改应用程序的情况下拦截客户端的 EJB 调用?

css - Selenium IDE : Target the second occurence of a span element that contains a specific string

java - 为什么Python不能通过子进程执行java.exe?

java - 关于 Grails map 的帮助