facebook-webdriverでボタンがクリックできない場合の対処方法

facebook-webdriverを用いて特定の要素をクリックする処理を行う際、要素が取得できているにもかかわらず、Element … is not clickable at point (…, …).のようなエラーが出てクリックできないということが発生しました。

指定したクリックしたい要素が画面上に表示されていないことが原因でした。 seleniumは人間がブラウザ操作する場合と非常に操作方法が似ており、画面上に表示されていない要素に関しては操作できないようです。

そのため、クリックしたい要素が画面上に表示されるまでスクロールをする必要があります。

$driver->executeScript("window.scrollTo(x座標, y座標);"); 

この処理をかくことで指定した座標までスクロールすることができます。