注意!記事中に「Chronium」という表記が出てきますが、正しくは「Chromium」です!
自身の戒めのためにこのまま残しますが、閲覧する方はお間違いないよう、よろしくお願い致します!
Edge の WebDriver 関連の情報は拾うの大変なので、自分メモ
pip でパッケージのインストール
pip install selenium==3.141.0
pip install msedge-selenium-tools==3.141.4
pip install webdriver-manager==3.4.2
Anaconda
はライセンスの関係で、使いません
今は改善されてるかもしれませんが、少し前?まで、最新のselenium
と最新のwebdriver-manager
の組み合わせでエラーが起きていたので、バージョンを指定したほうが無難
pip install msedge-selenium-tools selenium==3.141.0
と紹介してるサイトが多いから、msedge-selenium-tools
もselenium
のバージョンから受ける影響の大きいパッケージと推測される(未確認)
他の必要なパッケージは、自分で判断して入れてね
Importの宣言
宣言しないと使えないよー
1行目が selenium (webdriver) の宣言
2行目が webdriver_manager の宣言
3行目が selenium_tools の宣言
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager
from msedge.selenium_tools import EdgeOptions, Edge
Edge のオプションを指定
例) Edgeを--disable-web-security
と--user-data-dir=C:\Chrome dev session
のオプションを付与する場合
options = EdgeOptions()
options.use_chromium = True
options.add_argument('disable-web-security')
options.add_argument('user-data-dir=C:\\Chrome dev session')
ここではオプションを指定しているだけで、Edgeの実行はこの後
WebDriver にオプションを指定して Edge 実行
例) WebDrivr(msedgedriver.exe) を--log-level=ALL
と--log-path='ファイル名'
のオプションを付けて実行する場合
driver = Edge(executable_path = EdgeChromiumDriverManager().install(),
service_args = ['--log-level=ALL'],
service_log_path = 'ファイル名',
options = options)
説明
-
executable_path =
には、WebDriver のパスを指定 -
EdgeChromiumDriverManager().install()
は、Edgeがバージョンアップした時にEdge用WebDriverを自動更新してくれる、パッケージwebdriver_manager
の有難い機能 -
service_args =
には、msedgedriver.exe
に指定するオプションを指定 -
service_log_path =
には、ログファイル名を記載、これを記載する事で--log-path=
を指定したのと同じ事になるみたい -
options = options
は、Edge オプション
で指定したモノを記載
2022/3/1現在、executable_path =
は非推奨になって、service オブジェクト
を使用するようにと言われていますが
渡した引数はselenium_tools
内でservice オブジェクト
になって渡されているので、心配しなくても良いです
こうする事で、Selenium が WebDriver に投げてるリクエストが取り放題
えっ、プロキシ挟んだ方が早い? 何それ、旨いの?