【Python】Seleniumで「AttributeError: ‘WebDriver’ object has no attribute ‘find_elements_by_class_name’」が出たときの対処法

Pythonで”find_elements_by_class_name”メソッドを実行した際に出たAttributeErrorの対処方法をまとめました。

目次

エラー状況と原因

エラー状況

先日研究室で勧められたスクレイピングの本を見ながらサンプルコードを実行したところ、以下のようなエラーに遭遇しました。
from selenium import webdriver

url = "http://www.webscrapingfordatascience.com/complexjavascript/"

driver = webdriver.Chrome()
driver.get(url)

for quote in driver.find_elements_by_class_name("quote"):
    print(quote.text)

input("Press Enter to close the automated browser")
driver.quit()

AttributeError: ‘WebDriver’ object has no attribute ‘find_elements_by_class_name’

エラー内容を見てみると8行目で記述した”find_elements_by_class_name”メソッドが使えないみたいです。

原因

ネットで同じようなエラーに遭遇した人の情報を探ったところ、どうやらseleniumのバージョンが問題なようです。

今回使った”find_elements_by_class_name”のような、“find_element_by_”や”find_elements_by_”といったメソッドはseleniuのバージョン4.3.0で廃止されたみたいです。

なので最新バージョンのseleniumをインストールしている場合などはエラーが出て実行することが出来なかったみたいです。

解決策

結論から言うと以下のコマンドを入力すればエラーが消えます。

pip install selenium==4.1.0

seleniumのバージョンが原因だったので、上記のコマンドでseleniumのバージョンを4.1.0にダウングレードしています。

これでエラーに引っかかったメソッドを使用することが出来る様になり、問題なく上記のサンプルコードを実行することができました。

まとめ

今回はseleniumライブラリのAttributeエラーの対処方法を紹介しました。

この記事で不明な点や気になるところがあれば下のコメント欄までお願いします。それではまた!

よかったらシェアしてね!

この記事を書いた人

えだはのアバター えだは ITエンジニア

2001年生まれの♂。愛知県出身。
国立大学の情報学科を卒業後、某ユーザ系IT企業に就職。
2022年に当ブログ「えだはの部屋」を開設。
ブログ収益は100円〜1000円の間で常に低空飛行をしており、基本赤字。
将来の夢は億万長者。

コメント

コメントする

目次