selenium-side-runnerでエラー|ElementClickInterceptedError

ElementClickInterceptedErrorMac

Seleniumをコマンドラインで実行したときのエラーと対応事例です。

 

発生したエラー

selenium-side-runner -c "browserName=chrome" xxxxx.side

※”xxxxx”の箇所は実行するTestSuiteのファイル名

 

しかしエラーが発生。

ElementClickInterceptedError: Element <button id=”xxxxx” class=”yyyyy” name=”zzzzz” type=”button”> is not clickable at point (123,456) because another element <div class=”sssss”> obscures it

※”xxxxx”,”yyyyy”,”zzzzz”,”sssss”の箇所は操作するサイトによって違います。

 

エラーの原因

このエラーでは、button id=”xxxxx”をクリックしようとしたけれど、クリックできなかった。

という意味です。

 

要素<div class=”sssss”>button id=”xxxxx”を覆っているのでクリックできないようです。

ちなみに個の要素ですが、class名に”overlay”という文字列が含まれているために、ロード中画面だろうと推測しました。

 

ロード中画面、くるくる回るこれです。

ロード中

 

エラー解消方法

最初に試したのが、wait for element not visibleコマンドです。

これで要素<div class=”sssss”>が非表示になるのを待機するようにしました。

しかし、エラーは解消しませんでした。

同じエラーが発生します。

 

そこで試したのがpauseコマンドです。

button id=”xxxxx”をクリックする前に、pauseコマンドを挿入しました。

 

Command|Target|Value

pause|30000|

 

無事、エラー解消しました!

 

※なお、上記の解消方法は、操作するサイトにより有効であるかどうかが変わる可能性があります。解消方法の一つとして参考にしてください。

 

 

コメント