selenium 4.3.0からブラウザ上の要素を検索するfind_element_by_**メソッドが非推奨になりました。
そのためバージョンアップに伴い、以前は動いていたプログラムがエラーを吐いて動かなくなるといった現象が私の環境で起こりました。
対処法は下の記事にまとめたのですが、どうせなら最新バージョンのseleniumを使いたいということで今回はselenium 4.3.0以降では非推奨となったfind_element_by_**メソッドと最新バージョンでのfind_elementメソッドの対応についてまとめました。
find_elementメソッド selenium 4.3.0前後の対応まとめ
この記事ではfind_elementのみを扱っています。
find_elementsメソッドを扱いたい場合は、find_elementの部分をfind_elementsに置き換えるだけで変更できます。なお各メソッドの違いは下の記事でまとめてありますので気になる方は参考にしてください。
事前準備(ライブラリのインポート)
selenium 4.3.0以前
selenium 4.3.0以前でfind_element_by_**メソッドを使う場合に最低限必要なライブラリを下記コマンドでインポートしましょう。
from selenium import webdriver
selenium 4.3.0以降
selenium 4.3.0以降でfind_elementメソッドを使う場合はByコマンドを扱えるように次のコマンドで必要なライブラリをインポートしましょう。
from selenium import webdriver
from selenium.webdriver.common.by import By
タグの取得
selenium 4.3.0以前
driver.find_element_by_tag_name("タグ名")
selenium 4.3.0以降
#どちらの書き方でも可
driver.find_element(by=By.TAG_NAME, value="タグ名")
driver.find_element(By.TAG_NAME, "タグ名")
クラスの取得
selenium 4.3.0以前
driver.find_element_by_class_name("クラス名")
selenium 4.3.0以降
#どちらの書き方でも可
driver.find_element(by=By.CLASS_NAME, value="クラス名")
driver.find_element(By.CLASS_NAME, "クラス名")
IDの取得
selenium 4.3.0以前
driver.find_element_by_id("id名")
selenium 4.3.0以降
#どちらの書き方でも可
driver.find_element(by=By.ID, value="id名")
driver.find_element(By.ID, "id名")
nameの取得
selenium 4.3.0以前
driver.find_element_by_name("name名")
selenium 4.3.0以降
#どちらの書き方でも可
driver.find_element(by=By.NAME, value="name名")
driver.find_element(By.NAME, "name名")
XPathの取得
selenium 4.3.0以前
driver.find_element_by_xpath("Xpathの内容")
selenium 4.3.0以降
#どちらの書き方でも可
driver.find_element(by=By.XPATH, value="Xpathの内容")
driver.find_element(By.XPATH, "XPathの内容")
まとめ
今回はselenium 4.3.0前後でのfind_elementメソッドの対応と書き換えについてまとめました。
この記事で不明な点や気になるところがあれば下のコメント欄までお願いします。それではまた!
コメント