这确实是一个烦人的问题。但是,我可以弄清楚如何为 Firefox 解决它。也许您可以为其他浏览器找到类似的解决方案。
基本上,您必须强制浏览器在不要求的情况下下载文件。您可以通过加载特制的配置文件来做到这一点。
from selenium import webdriver
myprofile = webdriver.FirefoxProfile('./profile')
myprofile.set_preference('browser.download.dir', '/tmp/my_downloads_folder')
myprofile.set_preference('browser.download.folderList', 2)
myprofile.set_preference('pdfjs.migrationVersion', 1);
browser = webdriver.Firefox(fp)
除了加载配置文件,我们还定义了一个下载文件夹并禁用pdfjs
插件。
在./profile
文件夹中,我们有一个mimeTypes.rdf
这样的文件:
<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<RDF:Description RDF:about="urn:mimetype:application/pdf"
NC:value="application/pdf"
NC:editable="true">
<NC:handlerProp RDF:resource="urn:mimetype:handler:application/pdf"/>
</RDF:Description>
<RDF:Description RDF:about="urn:mimetype:handler:application/pdf"
NC:alwaysAsk="false"
NC:saveToDisk="true"
NC:handleInternal="false">
<NC:externalApplication RDF:resource="urn:mimetype:externalApplication:application/pdf"/>
</RDF:Description>
</RDF:RDF>
我希望它对你有帮助。