java - 如何保存在浏览器窗口中弹出的没有 url 的 .pdf 文件?

标签 java javascript selenium

我正在与 .pdf 合作仅在我公司的网站上提供的文件。我不知道有什么方法可以下载它们并将其存储在一个文件夹中。

我点击获取 .pdf 的链接文件具有以下源代码:

  <a href="javascript:propertiesView('documentName')">

当我点击链接时,出现 .pdf文件会在新的浏览器窗口中弹出,没有 url,也没有源代码。我认为没有办法操纵 .pdf直接,然后我怎样才能保存它以便操作 .pdfs从文件夹

谢谢

最佳答案

您可能会很幸运,只要告诉您的浏览器始终将 PDF 文件保存到磁盘(归功于 Dirk ):

firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");

如果这不起作用,您可能可以使用 switchTo() 方法遍历所有打开的窗口/选项卡。尝试这样的操作来深入了解您打开的窗口(归功于 Prashant Shukla ):

    public void getWindows() {
        Set<String> windows = driver.getWindowHandles();

        for (String window : windows) {
            driver.switchTo().window(window);
            System.out.println(driver.getTitle());
        }
    }

下载文件的非 Selenium 解决方案是使用 apache-commons 库(归功于 Shengyuan Lu ):

org.apache.commons.io.FileUtils.copyURLToFile(URL, File)

但这需要您知道窗口的 URL,您可能可以使用我提到的第二种方法 (driver.switchTo()) 和 driver.getCurrentUrl 获取该 URL ().

关于java - 如何保存在浏览器窗口中弹出的没有 url 的 .pdf 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18968027/

相关文章:

java - 计算字符串中的行数和单词数

java - 使用 java 将值添加到 zkoss 中的列表框

javascript - 使用 jQuery 获取 webkit 过滤器属性的数值

java - Selenium : How to retrieve WebDriver's implicitWait time in Java?

java - 如何通过 Jenkins 定位特定的 Cucumber 功能文件(自动化测试)?

java - Pipe ("|")和 grep 在 Android 中的 ProcessBuilder 中不起作用

java - Spring ActiveMQ 问题

javascript - 合并 mixins 和 View backbone.js 的事件定义

javascript - 根据另一个数组更改数组的顺序

ajax - Protractor - 在 $http 调用后选择中继器中的元素