
こんにちは、エドワイズです。
今回はPythonを使ってWebページの入力を自動化する方法を紹介します。
ここではテスト用ページ(http://example.selenium.jp/reserveApp/)を使いながら手順を解説していきます。
手順
Pythonのpipコマンドで『selenium』をインストール
『ChromeDriver』をダウンロードして作業フォルダに入れる
ChromeDriverのダウンロードページ(https://chromedriver.chromium.org/downloads)

実装
Webページを開く
|
from selenium import webdriver browser = webdriver.Chrome("chromedriver.exe") browser.get("http://example.selenium.jp/reserveApp/") browser.maximize_window() |
実行するとテスト用ページが開かれるはずですが、エラーが出てしまう場合はChromeDriverのバージョンを下げてみてください。
Webページのソースから入力欄のIDを取得して入力

HTMLのソースから対象となる入力欄のIDを探します。

キー入力
(例)宿泊月に「8」を入力する場合
|
month_elem = browser.find_element_by_id("reserve_month") month_elem.clear() month_elem.send_keys("8") |
send_keys関数で文字の入力。
clear関数を書いておくと、最初から入っていた文字が消せます。
クリック
ボタンもIDを取得してclick関数を呼ぶことで、クリックした時と同じ挙動にできます。
(例)朝食バイキング「なし」にチェックを入れる場合
|
breakfast_off_elem = browser.find_element_by_id("breakfast_off") breakfast_off_elem.click() |
Webページのソースを見ながらキー入力とクリックができれば、名前の欄も入力して次のページに飛ぶことができるはずです。
ただ、この方法だと次のページで確定ボタンのIDが見つからないと思います。
その場合は検証モードでIDを見つけます。

左上の矢印アイコンから特定の部分にフォーカスすることが可能。
これで確定ボタンのIDが「commit」であることがわかります。

IDが見つかったらあとは同じで、click関数を呼ぶだけ。
|
commit_elem = browser.find_element_by_id("commit") commit_elem.click() |
実装コードをまとめるとこんな感じ。
(例)8月2日から3泊、朝食バイキング「なし」、両プランにチェック、名前「エドワイズ」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
from selenium import webdriver browser = webdriver.Chrome("chromedriver.exe") browser.get("http://example.selenium.jp/reserveApp/") browser.maximize_window() month_elem = browser.find_element_by_id("reserve_month") month_elem.clear() month_elem.send_keys("8") day_elem = browser.find_element_by_id("reserve_day") day_elem.clear() day_elem.send_keys("2") term_elem = browser.find_element_by_id("reserve_term") term_elem.clear() term_elem.send_keys("3") breakfast_off_elem = browser.find_element_by_id("breakfast_off") breakfast_off_elem.click() plan_a_elem = browser.find_element_by_id("plan_a") plan_a_elem.click() plan_b_elem = browser.find_element_by_id("plan_b") plan_b_elem.click() name_elem = browser.find_element_by_id("guestname") name_elem.send_keys("エドワイズ") next_elem = browser.find_element_by_id("goto_next") next_elem.click() commit_elem = browser.find_element_by_id("commit") commit_elem.click() |
実行映像
こんな感じで面倒なWebページの入力は自動化しちゃいましょう。