7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Python & Selenium で Edge をオプション付きで実行(WebDriver もオプション付きで)

Last updated at Posted at 2022-02-28

注意!記事中に「Chronium」という表記が出てきますが、正しくは「Chromium」です!
自身の戒めのためにこのまま残しますが、閲覧する方はお間違いないよう、よろしくお願い致します!

Edge の WebDriver 関連の情報は拾うの大変なので、自分メモ

pip でパッケージのインストール

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 コマンド
pip install msedge-selenium-tools selenium==3.141.0

と紹介してるサイトが多いから、msedge-selenium-toolsseleniumのバージョンから受ける影響の大きいパッケージと推測される(未確認)
他の必要なパッケージは、自分で判断して入れてね

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のオプションを付与する場合

Ede オプション
    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='ファイル名'のオプションを付けて実行する場合

msedgedriver.exe オプション
    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 に投げてるリクエストが取り放題
えっ、プロキシ挟んだ方が早い? 何それ、旨いの?

7
5
1

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
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?