有人可以指导我如何实现以下目标:
我正在使用 selenium Web 驱动程序 java。
每当我单击网页上的预览按钮时,pdf 都会在新浏览器中打开,并且我需要使用动态给定的名称保存该 pdf。
到目前为止,我可以单击预览按钮,并打开一个包含 pdf 的新浏览器。这里浏览器没有url。
打开 pdf 后,我将发送按键 control+s。
然后出现保存对话框窗口。我被困在这里关于如何将 pdf 保存到本地驱动器。
主要浏览器是 IE,但我首先尝试使用 Firefox
最佳答案
您可以尝试此代码:-我认为这就是您正在寻找的。如果这正是您所期望的,请告诉我。
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/