Web上での単純作業を自動化するSeleniumの基本
Webサービスをブラウザ上でポチポチクリックするような単純作業は正直つらいと思います。
Seleniumを用いると、そのような作業を自動化することができます。
この記事では、Seleniumの基本的な使い方を紹介したいと思います。
具体的には
・事前準備
・ページの遷移
・テキストフィールドの入力
・ボタンのクリック
などです。
上記だけで完結する単純作業もあるのではないでしょうか。
環境はWindows、ブラウザはChromeを利用しています。
事前準備
下記からchromeのdriverをダウンロード。
https://sites.google.com/a/chromium.org/chromedriver/downloads
適当なフォルダに保存。
ページの表示
test.py
from selenium import webdriver
# 先ほどダウンロードしたchromedriverを読み込む
driver = webdriver.Chrome("./chromedriver.exe")
driver.get("https://~~~")
from selenium import webdriver
# 先ほどダウンロードしたchromedriverを読み込む
driver = webdriver.Chrome("./chromedriver.exe")
driver.get("https://~~~")
すると、Chromeウインドウが自動で開き、ページに遷移します。
テキストボックスへの入力
Seleniumでは、HTML内の要素(element)をname
やid
で指定し、
それに対してアクションをする、という書き方になっているようです。
下記のemail
の部分は、サイトごとによって異なります。
Chromeで右クリックし「検証」を押してソースコードを表示、
自分が操作したい要素のname
やid
をチェックしてください。
確認したところテキストボックスがemail
という要素だったので、[email protected]
というテキストを入力しています。
driver.find_element_by_name("email").send_keys("[email protected]")
また、入力フィールドをクリアするには、clear()
があります。
driver.find_element_by_name("email").clear()
ボタンのクリック
idが"search_button"と設定されているボタンを選択し、それをクリックします。
driver.find_element_by_id("search_button").click()
これを用いることで、ダウンロードボタンのクリックも可能になります。
チェックボックスが選択されているかどうかの確認
test.py
driver.find_element_by_id("check_box").is_selected()
driver.find_element_by_id("check_box").is_selected()
チェックボックスをクリックするとon/offが入れ替わるため、
既にチェックされてるかどうか確認したのちに、click()
を実行する必要がある場合に用います。
ソースコードの表示
test.py
driver.page_source
driver.page_source
取得したのちは、split()
などで適当に分割して扱うのが良いかと思います。
その他
ブラウザでの操作は、実行してから応答があるまで時間がかかることがあるため、
コードとコードの間にtime.sleep(5)
などを設け、
適当な時間あけるのが良いかと思います。
また、実行中のブラウザをいじっていると、予期しないエラーを吐くかもしれないため、触らないほうがいいと思います。
おわりに
単純作業は自動化して、他のことに時間使いたいですね。
このような自動化は、作業時間の変化によって、効果がわかりやすいのも達成感を感じやすくいいなと思いました。
誤りや、アドバイスなどがあったら教えていただけると嬉しいです。
なお、自分のブログの転載になります。
Author And Source
この問題について(Web上での単純作業を自動化するSeleniumの基本), 我々は、より多くの情報をここで見つけました https://qiita.com/tackey/items/483b90fa38fa65f9172c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .