10
11

Seleniumで利用するDriverの自動更新方法(Python)

Last updated at Posted at 2022-06-13

社内ツールでseleniumを使って色々やろうとしたのだが、Chromeが頻繁に更新されるので、手動更新がめんどくさくなった。
自動更新の仕方を調べ、実際にコーディングし、意図する結果になっているので、整理しておく。

※多少雑だが個人的備忘なのでご了承ください。

そしてそのツールは現状日の目を見ていないが、法改正をキャッチするために日次でチェックするツール(スクレイピング)にでもしようかと思ったり。
また、筆者はpythonはゴミレベルなので間違いとかあれば指摘歓迎です。

なおJavaの記事は以下で記載しているので参考まで。(私はJavaで飯を食っているエンジニア)

環境情報

  • python3
  • Windows 10
  • VsCode

※なお対象のdriverはchromedriver

実装

  • まずseleniumがない場合はinstall
> pip install selenium
  • 適当なフォルダにpythonのファイルを用意。
  • import文を以下のように定義
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

  • 環境に存在しているchromedriverを自動更新する

driver = webdriver.Chrome(ChromeDriverManager().install())

googleにログインする場合はprofileを指定する必要があるらしいので以下のように書きかえます。


# プロファイル指定
profilefolder = '--user-data-dir=' +'%HOMEPATH%\AppData\\Local\\Google\\Chrome\\User Data\\Profile 1'
options = webdriver.ChromeOptions()
options.add_argument(profilefolder)

 # chromedrivarをインストール
driver = webdriver.Chrome(
    ChromeDriverManager().install(),
# オプション指定
    options = options
    )

これで勝手に更新してくれる。

場所は、%HOMEPATH%.cache\selenium\chromedriver\win32以下にversionごとにフォルダができて、chromedriver.exeが存在しているはず。

seleniumuで自動テストなどを書いている場合は、実行の都度更新されていないとバージョン差異によって失敗するので、更新ロジックに続けでそのまま処理を書いる。
※そんなことしなくても大丈夫なはず。

  • driverを利用してseleniumで起動、実行(完成形)

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager


# プロファイル指定
profilefolder = '--user-data-dir=' +'%HOMEPATH%\AppData\\Local\\Google\\Chrome\\User Data\\Profile 1'
options = webdriver.ChromeOptions()
options.add_argument(profilefolder)

# chromedrivarをインストール
driver = webdriver.Chrome(
    ChromeDriverManager().install(),
# オプション指定
    options = options
    )

# フルパスを指定
driver.get("https://www.google.com")

# DOM要素を取得
img = driver.find_element_by_class_name("lnXdpd")


一応こんな感じで実行できることは確認できている。
、、、動的型付けマジわからん。なれない。

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11