16
3

More than 1 year has passed since last update.

AttributeError: 'WebDriver' object has no attribute 'find_element_by_id' の解決策

Last updated at Posted at 2022-07-27

課題

image.png
JupyterLabでスクレイピングを行おうとしたら
AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'
とのこと。

仮説

・タイプミス
・取得しようとしてる場所がおかしい

原因

結局仮説は外れており、ぐぐったらすぐ出てきた。
seleniumのバージョン4以上から、find_element_by_xxxのメソッドが使えないみたい。
以下コマンドでバージョンを確認してみると...

pip list

image.png
4.3.0でした!

解決策

・seleniumバージョンのバージョン下げる
・4.3.0の書き方で記述
バージョン変えるの面倒だから4.3.0用の書き方でやってみる。

finf_element_by_name                    旧バージョン
find_element(By.ID, "xxx")        新バージョン

ただ、これでもNameErrorが出てしまい、どうしたものかと思っていたら、
Byをimportしなければいけないようだったので、こちらも忘れずに!!

from selenium.webdriver.common.by import By

これで無事動きました。

学び

・バージョンによって書き方変わることがある
・仮説を立ててから課題解決に向かう(ぐぐる)と早い
・今回は仮説全然違ったけど、違うってことがわかるだけでまぁよかったかな
・仮説の精度はこういう経験の蓄積だと思われる
・当たり前なんだけど、そもそも吐き出されたエラー内容を正しく理解する

16
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
3