当前位置: 首页 > 知识库问答 >
问题:

Firefox中的Selenium“元素在点上不可单击”错误

余天宇
2023-03-14

关于网络驱动程序错误

Element is not clickable at point (X, Y). Another element would recieve the click instead.

对于ChromeDriver,这是在调试“元素在点不可点击”错误时解决的,但是这个问题也可能发生在火狐中。

在FirefoxDriver中发生此问题时,解决此问题的最佳方法是什么?

共有3个答案

彭鸿畅
2023-03-14

我的问题也通过Javascript解决了,请尝试以下代码而不是单击

WebElement rateElement = driver.findElement(By.xpath(xpathContenRatingTab));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", rateElement);
米飞龙
2023-03-14

如果您的问题是该元素从屏幕上滚下(结果是在标题栏下),您可以尝试将其滚回视图,如下所示:

private void scrollToElementAndClick(WebElement element) { 
int yScrollPosition = element.getLocation().getY(); 
js.executeScript("window.scroll(0, " + yScrollPosition + ");"); 
element.click(); }

如果需要,还可以添加一个静态偏移量(例如,如果您有一个200px高且始终显示的页眉):

public static final int HEADER_OFFSET = 200; 
private void scrollToElementAndClick(WebElement element) { 
int yScrollPosition = element.getLocation().getY() - HEADER-OFFSET; 
js.executeScript("window.scroll(0, " + yScrollPosition + ");"); 
element.click(); 
}

您可以使用JavascriptExecutor直接单击(不推荐)

WebElement element= driver.findElement(By."Your Locator"));

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);

希望对你有帮助:)

汝弘深
2023-03-14

在以下情况下会发生这种情况-

>

在单击元素之前,页面正在刷新。

变通办法

  • 使用线程。在对UI中的每个web元素执行操作之前先睡觉,但这不是一个好主意
  • 使用WebDriverWait满足预期条件

我面临着同样的问题,页面加载时间更长,整个网页上的加载图标重叠。

为了解决这个问题,我已经实现了WebDriverWaetExected条件,它在对元素执行单击操作之前等待加载图标消失

在执行操作之前调用此函数(我使用的是数据驱动框架)

public void waitForLoader () throws Exception  {
  try {
   String ObjectArray[]=ObjectReader.getObjectArray("LoadingIcon"); 
    if(checkElementDisplayed(ObjectArray[3],ObjectArray[2]))
    {
     WebDriverWait wait = new WebDriverWait(remotewebdriver,10); 
     wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath(ObjectArray[3])));
    }
   } catch (NoSuchElementException e) {
   System.out.println("The page is loaded successfully");
   }
  }
 类似资料:
  • 在Selenium中,我试图定位元素。但得到以下错误: 在中收到此错误。但它在浏览器中成功工作。有人有解决方案吗? 我已经尝试了这篇文章的帮助:-Selenium“元素在Firefox中的“点”错误,但无法获得结果。 我已经编写了以下代码:

  • 问题内容: 这个问题是由于总的中间在试图忠实于什么实际用户一样。所以我在想这种方法: 首先,而不是查找元素,然后单击: 编写单击以下内容的通用函数: 然后,当发生此异常时,请尝试以其他方式单击。 您认为这种方法可行吗? 问题答案: 请仔细阅读此堆栈溢出答案以更好地理解。 更新 我们也可以尝试 也请尝试如下 尝试使用Y坐标单击 尝试使用X坐标单击 希望这对您有帮助

  • 对于ChromeDriver,这是在调试“Element is not clickable at point”错误时解决的,但该问题也可能发生在Firefox中。 当它在FirefoxDriver中发生时,解决这个问题的最佳方法是什么?

  • 一个测试用例在chrome驱动程序中随机失败 我正在检查Wait.Until(ExpectedConditions.ElementToBeclickable(ele));我也试过线程。睡眠

  • 我有一个使用Selenium WebDriver版本3.6和Chrome驱动程序的自动化项目。软件运行良好,直到它开始显示错误 未知错误:元素在点(25,-9)处不可单击(会话信息:Chrome=61.0.3163.100)(驱动程序信息:ChromeDriver=2.31.488763(092DE99F48A300323ECF8C2A4E2E7CAB51DE5BA8),平台=Windows NT