出現此錯誤:“元素在該點不可點選”


在使用 Selenium webdriver 時,我們可能會遇到“元素在該點不可點選”的錯誤。由於 Chrome 瀏覽器使用點位置來識別元素,因此這通常發生在 chromedriver 中。

當元素的位置是動態的,並且我們想要點選該元素時,就會丟擲此錯誤。此錯誤的原因是,如果元素在 DOM 中可用,但其位置在前端是動態的。

下面列出了一些解決此問題的方法:

  • 使用顯式等待。我們可以等待預期條件 - visibilityOf。webdriver 將等待 DOM 中可用的元素可見。

  • 使用顯式等待。我們可以等待預期條件 - visibilityOfElementLocated。webdriver 將等待元素在 DOM 中可用並可見。

  • 最大化瀏覽器大小。

語法

driver.manage().window().maximize();
  • 使用 Actions action。

語法

WebElement m = driver.findElement(By.id("txt-loc"));
Actions a = new Actions(driver);
a.moveToElement(m).click().perform();
  • 使用 JavaScript 執行器。

獲取 x 軸位置的語法:

WebElement m = driver.findElement(By.id("txt"));
JavascriptExecutor j =(JavascriptExecutor)driver;
j.executeScript(
   "window.scrollTo(0,"m.getLocation().x+")");
   m.click();

獲取 y 軸位置的語法:

WebElement n = driver.findElement(By.id("txt"));
JavascriptExecutor j =(JavascriptExecutor)driver;
j.executeScript(
   "window.scrollTo(0,"n.getLocation().y+")");
   m.click();

更新於: 2021-06-29

627 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.