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エラーの対処方法を紹介しました。
この記事で不明な点や気になるところがあれば下のコメント欄までお願いします。それではまた!
コメント