seleniumのウィンドウ外要素のクリックエラー


$this->driver->findElement(WebDriverBy::id("select2-select_container"))->click();

seleniumを使って上のように、要素をとってクリックしようとしたらエラーが出ました。

error: Element <span id="select2-select_container">...</span> is not clickable at point (142, 16). 

どうやらseleniumが実際のユーザーの操作にしたがって、ウィンドウ外の要素をとってくることはできてもクリック操作はできない仕様になっているのが原因みたいです。

なのでその要素にスクロール移動する操作をはさんでから実行すれば大丈夫です。以下で解決。

$this->driver->executeScript("window.scrollTo(142, 16);");
$this->driver->findElement(WebDriverBy::id("select2-select_container"))->click();