出现此错误:"元素在当前位置不可点击"

seleniumautomation testingtesting tools更新于 2026/1/13 22:37:17

使用 Selenium webdriver 时,我们可能会遇到"元素在当前位置不可点击"的错误。这通常发生在 chromedriver 中,因为 Chrome 浏览器使用当前位置来识别元素。

当元素的位置是动态的,而我们想要点击该元素时,就会抛出此错误。导致此错误的原因是元素在 DOM 中可用,但其在前端的位置是动态的。

以下列出了一些解决此问题的方法 −

  • 显式等待的用法。我们可以使用等待预期条件 - visibilityOf。webdriver 应等待 DOM 中可用的元素可见。

  • 显式等待的用法。我们可以使用等待预期条件 - visibilityOfElementLocated。 WebDriver 应等待元素在 DOM 中可用且可见。

  • 最大化浏览器尺寸。

语法

driver.manage().window().maximize();
  • Actions 操作的使用。

语法

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();

相关文章