当前位置: 首页 > 知识库问答 >
问题:

使用Selenium Java下载PDF不适用于Chrome

慕容烨
2023-03-14

我编写了以下代码来禁用ChromePDF查看器,以便在Chrome打开链接时,PDF文件可以在C:\下载文件夹中自动下载。

ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<>();
prefs.put("download.default_directory", "C:\\downloads");
prefs.put("download.prompt_for_download", false);
prefs.put("plugins.always_open_pdf_externally", true);
options.setExperimentalOption("prefs", prefs);
options.addArguments("--test-type");
options.addArguments("--disable-extensions");
driver = new ChromeDriver(options);

不幸的是,我相信PDF查看器没有被正确禁用。以下是我打开PDF url时使用此代码得到的结果:

有没有其他解决方案可以在Chrome中自动下载文件?

共有1个答案

子车超英
2023-03-14

我在Chrome中管理了自动PDF下载,并加载了现有的浏览器配置文件。也许您只需要一个没有PDF查看器的个人资料。

public class WebdriverSetup {   
    public static String chromedriverPath = "C:\\Users\\pburgr\\Desktop\\selenium-tests\\GCH_driver\\chromedriver.exe";
    public static String chromeProfilePath = "C:\\Users\\pburgr\\AppData\\Local\\Google\\Chrome\\User Data";    
    public static WebDriver driver; 
    public static WebDriver startChromeWithCustomProfile() {
        System.setProperty("webdriver.chrome.driver", chromedriverPath);
        ChromeOptions options = new ChromeOptions();
        options.addArguments("user-data-dir=" + chromeProfilePath);
        driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        return driver;
    }
    public static void shutdownChrome() {
        driver.close();
        driver.quit();
    }
}
 类似资料:
  • 我有一个Spring Boot项目,我正在使用Jasper Report。我发布了一些json数据,并回复如下: 在我的Rest控制器上,我添加到RequestMap产生="应用程序/pdf",但它不起作用。 我的准备响应方法:

  • 我将nginx作为带有PHP-fpm的web服务器。我可以成功地看到我的网站使用http,但如果我使用https,我将下载索引页面,页面将不会显示。 我的nginx.conf 和conf.d/default。形态

  • 问题内容: 在Python 3的文件下载过程中,我需要显示一个进度。我已经看到了一些关于主题,但是考虑到我对编程不熟悉,没有人张贴完整的示例,只是其中的一部分,或者是我可以使Python 3上的工作对我没有好处… 附加信息: 好的,所以我有这个: 脚本通过python命令行运行 问题答案: 有将URL下载到文件并允许指定reporthook回调来报告进度的方法: 这是一个GUI进度栏: 在Pyth

  • 问题内容: 我的脚本必须使用一组凭据登录到站点,然后在某些下拉菜单中导航以选择报告。选择报告后,将弹出一个新窗口,必须在其中调整参数以生成报告。设置完参数后,相同的弹出窗口将以生成的PDF格式刷新报告,并使用Chrome的内置PDF查看器显示。我的印象是,将某些选项传递给webdriver会禁用此PDF查看器,而只是下载文件,但是PDF查看器仍在显示,不会自动下载任何内容。我当然会丢失某些东西,或

  • 我试着跟随以前关于这个主题的帖子,比如这些(帖子1,帖子2),但我仍然被困住了。 所以,在这一点上,Chrome仍然显示PDF查看器,尽管我之前禁用了它。没有下载任何东西,所以我想知道我是否需要提供另一行代码或其他东西。 在Windows 10上使用Selenium版本3.141.0、Python 3.6.4、Chrome webdriver 2.45。

  • 我正在尝试使用Selenium WebDriver自动执行文件下载功能。我正在使用谷歌浏览器,要下载的文件类型是PDF格式。当 WebDriver 单击下载(或打印)链接时,浏览器将显示 pdf 文件的预览,而不是直接下载。如何使chrome驱动程序直接下载pdf文件?我尝试了下面的代码,但没有运气 我知道这个问题已经在StackOverflow上问过了,包括这个,但这些解决方案都不适合我。 我正