PythonでWebスクレイピング ~最新のseleniumでfind_element_by_XXXが使えない~

python,Webスクレイピング,webスクレイピング

最新のSeleniumではfind_element_by_XXXが使えない

seleniumをアップデートしたらこんなエラーが出てきた。

AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'

xpathに限らずclassとかでも同様にエラーとなる。

ググってみたらfind_element_by_XXXはバージョン4で非推奨って出てくるけど使えないってもう非推奨じゃなくないか?

公式のアップデート内容を確認してみる

以下から公式のアップデート内容を確認してみる。

Selenium 4.3.0のアップデートにて、「非推奨の find_element_by_* および find_elements_by_* は削除されました」とちゃんと書いてますね。

じゃあ使えない。

対策その1 ~Seleniumのダウングレード~

前述の通り、Selenium 4.3.0から削除されているためそれより前のバージョンへダウングレードすれば問題なく使えます。

pip install selenium==4.2.0

対策その2 ~推奨のメソッドを使用する~

そもそも今まで使っていたメソッドは元から非推奨とのことなので、現在推奨されている要素取得のメソッドを使用します。

代表的な要素の取得は以下。(複数要素の取得をしたい場合はfind_elementsを使用)