Selenium を介してファイルをダウンロードする古い方法は、もはや機能していないようです。
私のコードは次のとおりです。
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk",
"application/pdf")
self.driver = webdriver.Firefox(firefox_profile=fp)
self.longMessage = True
ただし、ファイル ダイアログは引き続き表示されます。フィールドのオンとオフをかなり切り替えましたが、少し掘り下げた後、prefs.js
Selenium によって生成されたデフォルトの Firefox プロファイルのprefs.js
ファイルと、手動でチェックしたファイルとの間に違いがないことがわかりました。これは、ダウンロードダイアログで、今後このタイプのファイルに対して自動的に行われます。
ただし、mimeTypes.rdf
ファイルは変更されます。具体的には、次の行が追加されます。
<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"/>
ただし、新しい Firefox プロファイルを作成するときにカスタム mimeTypes.rdf ファイルを設定する方法はわかりません。誰にもアイデアはありますか?
ダウンロード URL を cURL するだけだと提案する人を先取りするには、ユーザー用にファイルが生成され、.pdf ファイルがドライブにダウンロードされていることを明確に確認する必要があります。