前記事、Edgeブラウザ自動操作プログラムのPython版になります。基本的に同じ内容ですが、Pythonの作法はRubyとはまた違うので、その点を主に記していきます。
開発環境
■OS、ブラウザ
・Windows10 64bit
・Edge
■プログラミング言語、主なライブラリとバージョン
・Python3.9
・selenium-webdriver
4.1.3
・msedge-selenium-tools 3.141.4
・Microsoft Edge ドライバー
プログラム実行方法
GitHubにサンプルプログラムを公開します。
https://github.com/kotetsu99/selenium_edge
上記のディレクトリ内にある
edge.pyがサンプルプログラムです。Ruby版のedge.ebも入っています。
以下の作業で登場するコマンドは、Python環境インストール済のWindows10のCUI(コマンドプロンプトまたはAnaconda Prompt)で行います。
※WindowsのPython環境は、Microsoft StoreからPythonをインストールすることで簡単にできます。
(1)Selenium 4.1.3のインストール
Pythonのpipコマンドで簡単にインストール可能です。
pip install selenium==4.1.3
Seleniumの最新版は2022/4/2現在では、4.1.3です。
(2)msedge-selenium-tools のインストール
PythonでSeleniumを使って、Edgeを動かすには、msedge-selenium-tools
と呼ばれるソフトウェアが必要です。
pip install msedge-selenium-tools
(3)Edgeドライバーのダウンロード
以下のサイトから、Edgeドライバーをダウンロード・解凍し、先ほどのフォルダの中に「msedgedriver.exe」を置いておきます。
Microsoft Edge ドライバー - Microsoft Edge Developer
※64ビット版である「x64」が対象。
(3)edge.pyの実行
以下のコマンドを実行します。
python edge.py
プログラム解説
edge.py のプログラムソースコードを掲載します。
from msedge.selenium_tools import Edge, EdgeOptions from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys WEB_DRIVER = 'msedgedriver.exe' query = 'test' options = EdgeOptions() options.use_chromium = True #options.add_argument('--headless') options.add_argument('--inprivate') options.add_argument('--lang=ja') options.add_argument('--window-size=1000,1000') # ブラウザ起動 driver = Edge(executable_path=WEB_DRIVER, options=options) driver.get('https://google.com') element = driver.find_element(By.NAME, "q") element.send_keys(query) element.send_keys(Keys.ENTER) driver.quit()
プログラムの動作としては、前記事のRuby版のように
・Edgeブラウザを起動
・Googleのページを開く
・「test」というキーワードを検索する
という簡単なものです。
オプションの指定などは、Ruby版と同じで、options.add_argument
というメソッドで、
・InPrivateモード(シークレットモード)
・言語指定=日本語
・ウィンドウサイズを1000x1000
・ヘッドレスモード(上記では無効にしてある)
というブラウザの動作オプションを指定しています。
要素の操作(find_element, send_keys)に関しては、少し癖がありBy、Keysという要素指定や入力キー指定を行う、前置詞的なものを冒頭で以下のようにライブラリとして読み込まないといけません。
from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys
何か細かくて違和感がありますがね……
Seleniumの仕組みやコマンドの作法については以下の書籍が参考になります。
以上、Python、Seleniumによる簡単なEdgeブラウザの操作プログラムの解説でした。