selenium 元素在点(x,y.5)处不可单击,因为另一个元素将其遮挡

2hh7jdfx  于 2022-12-18  发布在  其他
关注(0)|答案(6)|浏览(103)

我尝试单击一个元素,但出现错误:
Element is not clickable at point (x,y.5)
因为另一种元素使其模糊。
我已经试过先移动到那个元素然后点击,也试过通过最小化窗口然后点击来改变坐标,但是两种方法都失败了。可能重复的问题有我已经试过的答案,没有一个对我有效。
此外,相同的代码在不同的PC上工作。
如何解决呢?

ztmd8pv5

ztmd8pv51#

这通常在element.click()不工作时有效:

element = driver.find_element_by_xpath(xpath)
driver.execute_script("arguments[0].click();", element)
w46czmvw

w46czmvw2#

有一件事你也许可以做,虽然很粗糙,但我得马上承认。
可以模拟单击所需图元前面的图元,然后模拟按[Tab]和[Enter]键。
实际上,我最近经常看到这样的错误,我使用的是由bare selenium提供的常用.click()命令-类似driver.find_element_by_xpath(xpath).click()
我发现使用ActionChains解决了这个问题。
ActionChains(driver).move_to_element(element).click().perform()这样的东西对我很有效。
您将需要:
from selenium.webdriver.common.action_chains import ActionChains

58wvjzkj

58wvjzkj3#

这是@ wraks的想法,但如果使用php-webdriver你可以使用下面的代码:

$element = $driver->findElement(WebDriverBy::cssSelector($id_login));
$driver->executeScript("arguments[0].click();", [$element]);
rmbxnbpk

rmbxnbpk4#

如果有人在寻找@ crucks发布的Java版本的解决方案,请点击这里:

WebElement element = driver.findElement(By.xpath("//*[@id='element1']"));
((RemoteWebDriver) driver).executeScript("arguments[0].click();", element);
qxgroojn

qxgroojn5#

我也遇到过同样的问题,虽然我不是在python环境中。在我的例子中,这是由那些烦人的Cookie声明/警告引起的,你必须点击它们。Cookie声明/警告模糊了我需要点击的元素。所以,对我来说,解决办法是点击接受按钮。
我看了这段视频才明白:
https://youtu.be/k6g4MMavM1U

jei2mxaa

jei2mxaa6#

我发现有时候网页没有完全加载,答案就像添加一个时间一样简单。sleep(2)

相关问题