Seleniumでブラウザ上のボタン等をクリックさせるときに、下記のようなエラーが出ることがあります。
org.openqa.selenium.WebDriverException: Element is not clickable at point (123, 45.678).
Other element would receive the click: <div class="logo"></div>
最初悩んだんですけど実は原因は簡単で、ボタンをクリックさせたいのにボタンと追尾ヘッダーが重なってしまって押下できなかった、ということでした。
Seleniumだとデフォルトで画面の上部にクリック対象のボタンをスクロールさせます。
これだと追尾ヘッダーと重なってしまうので、クリック対象のボタンを画面の下端までスクロールするように設定を変えてあげると、ヘッダーに邪魔されずにボタンが押下出来るようになります。
クリック対象の位置を設定
capabilitiesの設定で変えられます。
DesiredCapabilities capabilities;
System.setProperty("webdriver.gecko.driver","C:\\pleiades\\eclipse\\workspace\\WebDriver\\geckodriver.exe");
capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("elementScrollBehavior", 1); // ココ
driver = new FirefoxDriver(capabilities);
設定しているのはelementScrollBehavior
のところ。
値を0にすると画面上端にクリック対象要素をスクロール、1にすると画面下端に対象要素をスクロールします。