「要素はポイントでクリックできません」というエラーのデバッグ 質問する

「要素はポイントでクリックできません」というエラーのデバッグ 質問する

これは Chrome でのみ表示されます。

エラーメッセージの全文は次のとおりです。

「org.openqa.selenium.WebDriverException: ポイント (411, 675) では要素をクリックできません。他の要素がクリックを受け取ります: ...」

「クリックを受け取る」要素は、問題の要素の横にあり、その上になく、重なってなく、ページ内を移動していません。

オフセットを追加してみましたが、それでもうまくいきませんでした。アイテムはスクロールしなくても表示されたウィンドウ上にあります。

ベストアンサー1

これは次の 3 つのタイプによって発生します。

1. 要素はクリックできる状態ではありません。

クリックするには、ActionsまたはJavascriptExecutorを使用します。

アクション別:

WebElement element = driver.findElement(By("element_path"));

Actions actions = new Actions(driver);

actions.moveToElement(element).click().perform();

JavascriptExecutor より:

JavascriptExecutor jse = (JavascriptExecutor)driver;

jse.executeScript("scroll(250, 0)"); // if the element is on top.

jse.executeScript("scroll(0, 250)"); // if the element is on bottom.

または

JavascriptExecutor jse = (JavascriptExecutor)driver;

jse.executeScript("arguments[0].scrollIntoView()", Webelement); 

次に要素をクリックします。

2. 要素をクリックする前にページが更新されます。

このためには、ページを数秒間待機させます。

3. 要素はクリック可能ですが、その上にスピナー/オーバーレイがあります

以下のコードはオーバーレイが消えるまで待機します

By loadingImage = By.id("loading image ID");

WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);

wait.until(ExpectedConditions.invisibilityOfElementLocated(loadingImage));

次に要素をクリックします。

おすすめ記事