こんにちは、うたかたです。
この記事ではpythonでseleniumを使ってブラウザ操作を自動化するためのメソッドをまとめています。
目次
プログラムの前準備
この記事で紹介するメソッドを使用する時は以下のようにimport文とwebdriverの指定を行ってください。
from selenium import webdriver
driver = webdriver.Chrome()
seleniumとwebdriverのインストールの方法については省略します。
ブラウザの操作メソッド
指定したURLをブラウザで開く
driver.get("開きたいURL")
特定のページに遷移する時
driver.get("開きたいURL")
1つ前のページに戻る時
driver.back()
1つ先のページに進む時
driver.forward()
ブラウザを更新する時
driver.refresh()
現在開いているURLを取得する
driver.current_url
現在開いているページのタイトルを取得する
driver.title
開いているウィンドウを閉じる
driver.close()
開いているウィンドウを全て閉じる
driver.quit()
特定の要素を指定する
取得したい場所を指定する方法を紹介します。
1つ注意点として、このコマンドでは要素を指定するだけなので、テキストやURLを取得したりする時はさらにコマンドを組み合わせる必要があります。その方法については下で紹介しています。
1つだけ指定する
指定した要素を1つだけ取得するコマンドです。
idで要素を指定する
driver.find_element_by_id("ID")
class名で指定する
driver.find_element_by_class_name("class名")
cssセレクタで指定する
driver.find_element_by_css_selector("CSS selector")
xpathで要素を指定する
driver.find_element_by_xpath("Xpath")
タグ名から要素を指定する
driver.find_element_by_tag_name("tag名")
name属性で指定する
driver.find_element_by_name("name")
LinkTextの文字列の一部から指定する
driver.find_element_by_partial_link_text("LinkText文字列の一部")
LinkTextの文字列から指定する
driver.find_element_by_link_text("LinkTextの文字列")
要素を複数指定する
指定された要素を複数個取得するコマンドです。
取得した値はリスト形式で返されます。
基本的には上で紹介したコマンドを「element」→「elements」に変えるだけです。
idで要素を指定する
driver.find_elements_by_id("ID")
class名で指定する
driver.find_elements_by_class_name("class名")
cssセレクタで指定する
driver.find_elements_by_css_selector("CSS selector")
xpathで要素を指定する
driver.find_elements_by_xpath("Xpath")
タグ名から要素を指定する
driver.find_elements_by_tag_name("tag名")
name属性で指定する
driver.find_elements_by_name("name")
LinkTextの文字列の一部から指定する
driver.find_elements_by_partial_link_text("LinkText文字列の一部")
LinkTextの文字列から指定する
driver.find_elements_by_link_text("LinkTextの文字列")
指定した要素の情報を取得する
指定した要素から情報を取得するコマンドを紹介します。
このコマンドは要素1つずつにしか使えないので、リスト形式の要素に以下のコマンドをやってもエラーが発生します。
複数の要素を取得した時はリスト形式になっているので注意が必要です。
テキストを取得する
.text
driver.find_element_by_class_name("クラス名").text
この例ではクラス名で要素を指定し、その要素の文字列を取得しています。
URLを取得する
.get_attribute("href")
driver.find_element_by_class_name("class名").get_attribute("href")
この例文ではクラス名で要素を指定し、その要素のリンク先URLを取得しています。
クリックする
.click()
driver.find_element_by_class_name("class名").click()
この例ではクラス名で要素を指定し、その要素をクリックしています。
終わりに
この記事ではpythonでseleniumを使う際によく使うメソッドを紹介しました。
もし間違っているものがあれば、ご指摘ください。