PythonからSeleniumをインストール。Webを自動実行してくれるツール(WebDriver)をダウンロード。これで簡単に自動化できます!
前回はPythonのインストールを行いました。まだ構築できていない方はぜひ前回の記事をご覧いただき構築を進めてみてください!
今回は実際に環境構築を終わらせた後、Chromeで自動実行してみて動作できるところまでを教えます!
実際にインストールしてみた
コマンドプロンプトを起動する
Windowsのスタートメニューをクリックして「cmd」と入力。エンターキー押下。
コマンドプロンプトが起動する。
pipを使用してseleniumをインストールする
起動したコマンドプロンプトにて「pip install selenium」と入力。エンターキーを押下。
関連パッケージも併せてインストールされるのでしばらく待つ
実行が完了したら最後の文に「Successfully installed」と表示されたことを確認。インストールの一覧に「selenium」があることを確認する。(今回はversion4がインストールされましたのでそちらでコードを書いていきます)
ChromeDriverをインストール
Seleniumだけでは自動実行できません。Chromeの場合、ChromeDriverというWebDriverを間に挟むことで実行することが可能です。
WebDriverは作成したコードをもとにクリックや入力などを代わりに行ってくれるロボットのようなものだと思ってください。
ソースコード(シナリオファイル)→WebDriver→ブラウザ
※動作順のイメージです
Chromeのバージョンを確認
まず、ChromeのバージョンとChromeDriverのバージョンを合わせる必要があるのでChromeのバージョンを確認しておきましょう!
右上の三点リーダをクリック→「ヘルプ」にマウスオーバー→「Google Clome について」をクリック
表示されたバージョンをメモしておく。※今回(2023年2月 現在)であれば「110.0.5481.100」
Driverをダウンロード・解凍
にアクセスする。
先ほどメモをしたChromeのバージョンに一番近いリンクをクリックする
リンクをクリックするといくつかのファイルが表示されています。今回はWindowsで実行するので「chromedriver_win32.zip」をクリックする。
ダウンロードが開始されるのでしばらく待つ。
Chrome標準であればダウンロードフォルダにzipファイルがダウンロードされているのでダウンロードフォルダを開き、zipを展開する。展開したら「chromedrover.exe」があることを確認する。
任意の所にDriverを配置
今回はお試しとしてCドライブ直下に「autotest」というフォルダを作成してそこに先ほど展開した「chromedriver.exe」を配置する
これで自動実行する環境は一通りそろいました!
ちなみに他のDriverはこちらからダウンロード
Microsoft Edge(現行版):ChromeDriverと同じドライバーを使用します。
firefox:geckodriverを使用します。
リクエストがあればこちらの構築手順も作成します!
動作確認してみる
pyファイルの作成
pythonで実行するためにpyファイルを作成しましょう!
今回は「sample.py」にて作成しました。
実行内容はgoogleを開き、検索窓に「オクタンラボ」と入力するところまで確認しました。
Driverの呼び出し
from selenium import webdriver
from selenium.webdriver.chrome import service
そのほかにWebのパーツを探すための機能をインポートしたいため下記も記載します
from selenium.webdriver.common.by import By
Chromeの起動と起動時の最初にアクセスするURLを記載
chromedriver = "C:\autotest\chromedriver.exe"
chrome_service = service.Service(executable_path=chromedriver)
driver = webdriver.Chrome(service=chrome_service)
driver.get('https://www.google.co.jp')
実行したい動作を入力
今回は検索ボックスに入力なので検索ボックスの部品を抽出すればOKです!
selenium ver.4はver.3と書き方が異なっていたので、こちらを参照して作成しました。
引用元:seleniumクイックリファレンス-send_keyssend_keys(special)-Python「Selenium Python」の特殊キーを入力をする「send_keys(special)」の使い方を解説します
XPATHを基本使用していきます。XPATHの基本的な取得方法は下記ブログ記事を参照してください!
まず、要素を特定します(find_element)。そのあと特定した要素に「オクタンラボ」を入力してます。(send_keys)
kensaku_box = driver.find_element(By.XPATH, '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input')
kensaku_box.send_keys('オクタンラボ')
実行してみる
ここまで記載したら実行してみましょう!作成したファイルを保存して
「sample.py」をダブルクリックします。実行するアプリの選択がでたら「Python」を選択します。
コードが正しく書けていれば、しばらくするとchromeが起動しシナリオ通りに実行してくれます。
最後に
実行したコードをこちらに貼っておきます。(from time import sleepは実行した後閉じるのでちょっと待って実行を確認しています。)
#インポート類
from selenium import webdriver
from selenium.webdriver.chrome import service
from selenium.webdriver.common.by import By
from time import sleep
#driver設定および起動設定
chromedriver = "C:\autotest\chromedriver.exe"
chrome_service = service.Service(executable_path=chromedriver)
driver = webdriver.Chrome(service=chrome_service)
driver.get('https://www.google.co.jp')
#自動実行シナリオ
kensaku_box = driver.find_element(By.XPATH, '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input')
kensaku_box.send_keys('オクタンラボ')
#結果を見たいため
sleep(10)
コメント