Seleniumを使い始めたばかりのときは、エラーが出るとなんとなく焦ってしまいます。が、ちゃんとメッセージを読んで何が起こっているのかを把握することが大事です。

ここでは使い始めによく遭遇するエラーとその対処方法について書いておきます。 (随時追加予定)

NoSuchElement

"org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"id","selector":"Value"}"

こんなエラーが出たときには、そのidで指定した要素が画面上にないよ、と言われています。

ありがちなのは

  • idやxpathなどで指定した値の書き間違い
    • okbtnをokbtmって書いてるとかそんなレベル
  • 画面内に表示されていない
    • 基本的に起こらないはずですが、稀にある。対象の要素が画面に出るようスクロールする等対処が必要

Element is not clickable

org.openqa.selenium.WebDriverException: unknown error: Element is not clickable at point (xxx, xxx). Other element would receive the click:

これは、指定した要素がクリックできない、と言っています。

多いのが、クリック対象の要素の上に重なるように、別の要素が表示されてしまっている場合。たとえば、クリックしたいボタンがあるのに、手前にアラートが表示されていて画面全体がグレーになっている、など。

この場合は、対象の要素に重なっているものが何なのかを調べて、回避してあげる必要があります。

そのほかには、サイトのヘッダーがスクロール追尾するような場合で、ボタンに重なってしまっているとき。こんなときは、クリック対象を画面の上端に持ってくるか下端に持ってくるかを設定できるので、試してみましょう。

参考:Seleniumでクリック対象要素を画面の下端にスクロールさせる設定 – ひびテク

This version of ChromeDriver only supports Chrome version XX

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XX

これは、GoogleChtomeのバージョンとchromedriverのバージョンが対応していないために起こっています。

Chromeのバージョンを調べて、対応するchromedriverを使えばOKです。