Selenium在Firefox中出现“元素在点上不可单击”错误,但在Chrome中工作

Selenium在Firefox中出现“元素在点上不可单击”错误,但在Chrome中工作,selenium,firefox,selenium-webdriver,Selenium,Firefox,Selenium Webdriver,在Selenium中,我试图定位一个元素。 但得到以下错误: org.openqa.selenium.WebDriverException: Element is not clickable at point (1009.25, 448.183349609375). Other element would receive the click: <rect data-sdf-index="7" height="390" width="420" class="aw-relations-noed

在Selenium中,我试图定位一个元素。 但得到以下错误:

org.openqa.selenium.WebDriverException: Element is not clickable at point (1009.25, 448.183349609375). Other element would receive the click: <rect data-sdf-index="7" height="390" width="420" class="aw-relations-noeditable-area"></rect> (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 12 milliseconds

您好,上面的错误出现在这样的情况下,即您的webdriver脚本执行操作,但要执行操作的元素未正确加载到DOM中,即其在DOM树中的位置不固定。还请注意,selenium能够执行其操作,因为元素在DOM中可用,因此只有webdriver查找DOM中元素的存在,而不是它在DOM中的位置

那么如何克服这个问题呢

   1.Give time to DOM to properly give positions to its element.
这可以通过以下方式实现:

1.Instead of performing operation's directly at the target area try to do some extra/false 
activity with webdriver which will give time for DOM to position all of his elements
2.apply Thread.sleep().
3. also if you are running your test in smaller window size then set the size to maximum it 
will also help

我没有包含任何代码,因为你在问题中提到的链接包含了大量关于这方面的工作,所以我决定让大家低估为什么会发生此错误。谢谢,希望这有帮助

您是否尝试过使用Javascript直接单击?在python中,我使用

driver.execute_script("arguments[0].click();", elt)

在Java中,它应该看起来像…

u尝试使用javascript executor?尝试在单击required之前增加几秒钟的等待时间element@noor这里我如何使用javascript executor,因为我没有确切的webelement。我正在从一个元素移动到40,0个没有任何webelement的位置。执行单击操作后,将创建一个WebElement。@Anderson有没有其他方法不使用Thread.Sleep方法?@noor如果我将光标移到那里40,0,将显示一个rect元素,否则将不显示任何内容。因此,我移动到该位置以选择该元素。请让我了解您的场景是什么只有我可以建议一些额外的活动有一个矩形,它只是代码中提到的节点。现在长方形的边一开始是禁用的,禁用意味着你可以看到这些边,但不能对其执行任何操作。所以我做了一些更改,这样当我将光标移动到那里时,你会发现那里有一个小正方形框,如果你从那里移动光标,正方形会被隐藏。现在,在我使用moveElement的代码中,我移动到了那个位置。当我单击矩形的一侧时,那个小方形框应该会出现。但是我得到了上面提到的这个错误,而不是直接使用moveElement。请先在页面上执行一些其他功能,就像你可以计算页面或菜单上可用的链接总数一样在那之后使用MoveElement我在函数之前计算了g元素的数量,但仍然给出了相同的结果。你能执行一个功能吗?根据你的说法,这需要一些时间。我猜计算g元素的时间不够
driver.execute_script("arguments[0].click();", elt)