簡體   English   中英

selenium沒有在FirefoxProfile中設置downloaddir

[英]selenium doesn't set downloaddir in FirefoxProfile

我想自動下載文件並將它們保存在目錄中,一切都已完成但是Firefox仍然保存用戶下載文件夾中的文件,例如C:\\users\\root\\Downloads

PyWebBot類中的函數

@staticmethod
def FirefoxProfile(path, handlers):
    from selenium import webdriver

    profile = webdriver.FirefoxProfile()
    profile.set_preference("browser.download.folderList",1)
    profile.set_preference("browser.download.manager.showWhenStarting",False)
    profile.set_preference("browser.download.dir", path)
    profile.set_preference("browser.download.downloadDir", path)
    profile.set_preference("browser.download.defaultFolder", path)
    profile.set_preference("browser.helperApps.alwaysAsk.force", False)
    profile.set_preference("browser.helperApps.neverAsk.saveToDisk", handlers)
    profile.set_preference("pdfjs.disabled", True)
    profile.update_preferences()

    return profile

然后

 def setUp(self):
        self.profile = PyWebBot.FirefoxProfile(config['downloads'], config['handlers'])
        self.driver = webdriver.Firefox(self.profile)
    ...
    ...

配置:

config['downloads'] = 'Q:/web2py_src/web2py/applications/internet2letter/private/testing/selenium/downloads'
config['handlers'] = 'application/pdf'

有幾種方法可以解決這個問題,

  1. 確保路徑有效。 使用類似os.path.existsos.isfile
  2. Firefox使用selenium驅動程序啟動時,導航到about:config並檢查查找browser.download.dir ,以確保有更改。
  3. 最后,確保profile.set_preferenceprofile.set_preference("browser.download.folderList",2 )有2作為第二個參數,因為0表示下載到桌面, 1表示下載到默認的“Downloads”目錄, 2表示使用您在“browser.download.dir”中指定的目錄
  4. 確保用反斜杠標記你的路徑'\\'而不是正斜杠'/'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM