在chromedriver中禁用PDF Viewer插件

时间:2017-01-26 15:37:37

标签: python python-2.7 selenium selenium-chromedriver

我正在尝试批量下载BlackBoard环境中的大量文件(在世界各地的大学/学校中大量使用)。我能够检索文件所在的链接,但只有一个市长问题:

当文件是.pdf文件时,它将显示在新的浏览器选项卡中,而不是下载。对于例如使用click()下载.xlsx文件就可以了。

我可以更改驱动程序设置以更改此行为吗?怎么样?

修改
 我更新了问题,以回应Ari的回答。它现在包含有关实际插件的更多信息。也许这可用于识别必须禁用的插件..

Chrome PDF Viewer (2 files)

   Name:            Chrome PDF Viewer
       Version: 
       Location:    chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/
       Type:        BROWSER PLUGIN
                    Disable
       MIME types:  MIME type        Description     File extensions
                    application/pdf                  .pdf

   Name:            Chrome PDF Viewer
       Description: Portable Document Format
       Version: 
       Location:    internal-pdf-viewer
       Type:        PPAPI (out-of-process)
                    Disable
       MIME types:  MIME type        Description    File extensions
                    application/x-google-chrome-pdf Portable Document Format    
                    .pdf   

3 个答案:

答案 0 :(得分:6)

Chrome 57更改设置... 使用它来禁用Chrome PDF查看器:

//To disable PDF viewer plugins with Chrome 57
chromePrefs.put("plugins.always_open_pdf_externally", true);

答案 1 :(得分:3)

Ari的回答几乎正常。我只需要将插件的名称封装到一个列表中:

chromeOptions = webdriver.ChromeOptions()
prefs = {"plugins.plugins_disabled" : ["Chrome PDF Viewer"]} # Here should be a list
chromeOptions.add_experimental_option("prefs",prefs)
chromedriver = "path/to/chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=chromeOptions)

现在下载工作正常!

答案 2 :(得分:1)

您可以将插件设置为首选项禁用吗?

chromeOptions = webdriver.ChromeOptions()
prefs = {"plugins.plugins_disabled" : "Chrome PDF Viewer"}
chromeOptions.add_experimental_option("prefs",prefs)
chromedriver = "path/to/chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=chromeOptions)

参见" setting Chrome preferences w/ Selenium Webdriver in Python"和" How to disable Chrome Plugins in Selenium WebDriver using Java"。