【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エラーの対処方法を紹介しました。

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

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

この記事を書いた人

えだはのアバター えだは 大学生

国立大学で情報工学を専攻中の22歳の♂。
運営ブログの閲覧者が壊滅的に少ない。

コメント

コメントする

目次