小编典典

调试“元素不可点击”错误

python

我只能在Chrome浏览器中看到。

完整的错误消息显示为:

“ org.openqa.selenium.WebDriverException:元素在点(411,675)不可点击。其他元素将获得点击:…”

“将获得点击”的元素位于相关元素的侧面,而不是在其顶部且不重叠,也不在页面上移动。

我曾尝试添加偏移量,但这也不起作用。该项目位于显示的窗口中,无需滚动。


阅读 123

收藏
2020-12-20

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

然后单击元素。

2020-12-20