everyday-study

【Python/Selenium】自動で最適なWebDriverを取得する方法

こんにちは、前回までで一通りブログのカスタマイズが終わったので、これからは主にプログラミング関連になるとは思いますが、何かしら学んだことを日々書き連ねていきたいと思います

今回はPythonSeleniumに関する記事です

Seleniumでブラウザ操作を自動化するにあたり必要なこと

Chrome,Firefox,Edgeなどウェブブラウザは様々ありますが、それらの操作を自動化するための前提として次のことが挙げられます
・それぞれのブラウザのWebDriverが必要
・ドライバーのバージョンと使用しているブラウザのバージョンが合っている必要がある
操作したいブラウザのドライバーのダウンロードページに行って自分に合ったドライバーのバージョンをインストールするだけなので、この作業自体が大変というわけではないです

WebDriverを手動で更新する場合の問題点

ただブラウザ側のバージョンが上がる度に毎回整合性を取らなければならなくなる可能性はあります
そんなの面倒ですよね
その作業をプログラム自身にやってもらおうというのが本記事の趣旨です

WebManagerの使用方法

WebManagerのインストール

pythonでのWebManagerのインストールは簡単です
おなじみpipで次のコマンドを打つだけです

pip install webdriver_manager

サンプルコード

使用するブラウザはChromeです

#必要なパッケージのインポート
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

def get_web_driver():
  #ここで使用環境にあったWebDriverをインストール
    driver=webdriver.Chrome(ChromeDriverManager().install()) 
    return driver

driver=get_web_driver()
driver.get('https://google.com')


初回実行時は次のような流れになります
・使用しているブラウザのバージョンを確認
・それに合った最新のドライバーを取得
・適したドライバーがない場合はwebからダウンロード
・'C:\\Users\\ユーザー名\\.wdm\\drivers\\chromedriver\\win32\\86.0.4240.22にドライバーを保存

f:id:hachipochi5:20201123160117p:plain

キャッシュが存在する場合はそのキャッシュを利用しています
f:id:hachipochi5:20201123155958p:plain

参考リンク

yuki.world

solomaker.club