我正在嘗試關閉 Firefox 下載對話框。我使用了這段使用 selenium 庫的 python 代碼。這應該使該檔案直接下載到輸入的路徑中,而無需額外詢問。
from selenium import webdriver
def disable_download_dialog(path):
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.dir", path)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
fp.update_preferences()
return fp.path
然后我在我的射頻測驗中呼叫這個函式,如下所示:
${ff_profile_path}= disable download dialog ${EXECDIR}\\path\\to\\my\\folder
然后像這樣打開瀏覽器:
Open Browser ${url} ${browser} ff_profile_dir=${ff_profile_path}
從測驗運行中我可以看到仍然顯示下載視窗。我要發送下載檔案的檔案夾的路徑顯示在測驗日志中,如下所示:
D:\\path\\to\\the\\folder\\named\\Downloads
并且 firefox 組態檔確實更新并保存在 Temp 檔案中。但看起來它沒有加載,因此用于我的測驗。火狐組態檔的路徑是這樣的:
C:\Users\surname~1.name\AppData\Local\Temp\tmp83d29mnz
ofc 每次創建新的組態檔時,這都不是問題。如果我還可以為我使用 python 函式創建的這個 firefox 組態檔設定路徑,那可能會很棒。
所以這里的問題是:
為什么當我禁用它時仍然顯示下載對話框?
可以將firefox組態檔保存在我定義的檔案夾中嗎?
uj5u.com熱心網友回復:
好的,所以我發現了缺失的部分。
我將這兩行代碼添加到python函式中
fp.set_preference("browser.helperApps.alwaysAsk.force", False)
fp.set_preference("pdfjs.disabled", True)
所以函式的最終版本如下所示:
def disable_download_dialog(path):
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.dir", path)
fp.set_preference("browser.helperApps.alwaysAsk.force", False)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk",'application/pdf')
fp.set_preference("pdfjs.disabled", True)
fp.update_preferences()
return fp.path
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/426741.html
