バージョン

  • Firefox 81.0
  • geckodriver 0.27.0

Firefox関係のディレクトリの種類

プロファイルディレクトリ

  • Linux ~/.mozilla/firefox/xxxxxx.default-release/
  • OSX ~/Library/Application\ Support/Firefox/Profiles/xxxxxx.default-release/
  • Windows %APPDATA%\Mozilla\Firefox\Profiles\xxxxxx.default-release\

拡張機能、localStorage、その他ユーザー設定が保存されるディレクトリ。Selenium起動時にはこれが/tmp/tmpxxxxxxx/webdriver-py-profilecopyにコピーされ、分離されて実行される。

FirefoxProfile#profile_dirで取得できる。

キャッシュディレクトリ

  • Linux ~/.cache/mozilla/firefox/xxxxxx.default-release/
  • OSX ~/Library/Caches/Firefox/Profiles/xxxxxx.default-release/
  • Windows %LocalAppData%\Mozilla\Firefox\Profiles\xxxxxx.default-release\

Selenium実行時には/tmp/rust_mozprofilexxxxxになる。

Firefox#capabilities['moz:profile']で取得できる。

基本

1
2
3
4
from selenium.webdriver import Firefox

ff = Firefox()
ff.get('https://google.com/')

ログイン状態で起動

FirefoxProfileでプロファイルディレクトリを設定する。

1
2
3
4
5
6
from selenium.webdriver import FirefoxProfile, Firefox

profile = FirefoxProfile('/home/me/.mozilla/firefox/xxxxxx.default-release')

ff = Firefox(profile)
ff.get('https://google.com/')

拡張機能を有効化した状態で起動

1
profile.set_preference('extensions.lastAppBuildId', '-1')

キャッシュの場所

1
ff.capabilities['moz:profile'] + '/cache2'

プロキシの設定

1
2
3
4
5
profile.set_preference('network.proxy.socks', 'localhost')
profile.set_preference('network.proxy.socks', '1080')

profile.set_preference('network.proxy.http', 'proxy.example.com')
profile.set_preference('network.proxy.http_proxy', '8080')