【Selenium】「AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_name’」と表示された時の対処方法!

「Selenium」を使ってテストをしたところ、以下のようなエラーが出てしまいました。

% python test.py                                    
Traceback (most recent call last):
  File "/Users/xxxx/test.py", line 9, in <module>
    search_box = driver.find_element_by_name('q') #ページ上の要素の取得
AttributeError: 'WebDriver' object has no attribute 'find_element_by_name'

対処方法を簡単にですが、まとめました。

目次

原因

find_elements_by_*系メソッドが「バージョン4.3.0」で廃止されたため、このようなエラーが発生したようです。

対処方法

対処方法は2つ。

4.3.0以降の記述方法に変更する

以下のような記述方法に変えてみる。

from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

driver = webdriver.Chrome(service=Service('chromedriver_105.exe'), options=options) # Chrome Driver

# 検索ワードに「Yahoo」と入力
driver.find_element("xpath", '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input').send_keys("Yahoo")

4.3.0以前にバージョンを下げる

4.3.0よりも前のバージョンをインストールして、切り替えることにより回避も可能です。

pip install selenium==4.1.0
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次