12

ファイルを自動ダウンロードしてディレクトリに保存したいのですが、すべてが完了しましたが、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'
4

1 に答える 1

18

この問題を解決するにはいくつかの方法があります。

  1. パスが有効であることを確認してください。次のようなものを使用するかos.path.existsos.isfile
  2. Firefoxがセレン ドライバで起動したら、に移動しabout:configてルックアップをチェックしbrowser.download.dir、変更があったことを確認します。
  3. 最後に、profile.set_preference( profile.set_preference("browser.download.folderList",2) が22 番目の引数として指定されて いることを確認してください。これ0は、デスクトップにダウンロードすることを1意味し、デフォルトの "Downloads" ディレクトリにダウンロードする2ことを意味し、"browser.download.dir" で指定したディレクトリを使用することを意味するためです。
  4. パスがスラッシュ「/」ではなくバックスラッシュ「\」で示されていることを確認してください
于 2013-08-30T15:10:42.380 に答える