我试图点击某个元素但收到错误:
Element is not clickable at point (x,y.5)
因为另一个元素掩盖了它。
我已经尝试首先移动到该元素,然后单击并通过最小化窗口然后单击来更改坐标,但两种方法都失败了。可能重复的问题有我已经尝试过的答案,但没有一个对我有效。
此外,相同的代码正在另一台PC上运行。
如何解决?
答案 0 :(得分:4)
你可以做一件事。虽然这很粗糙,但我马上就承认了。
您可以在需要的元素前面直接模拟元素,然后按[TAB]和[ENTER]模拟按键。
实际上,我最近看到了这个错误。我使用的是由硒提供的常见.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
答案 1 :(得分:3)
这通常在element.click()
不起作用时起作用:
element = driver.find_element_by_xpath(xpath)
driver.execute_script("arguments[0].click();", element)
答案 2 :(得分:1)
这是@wrecks 的想法,但如果使用 php-webdriver,您可以使用以下代码:
$element = $driver->findElement(WebDriverBy::cssSelector($id_login));
$driver->executeScript("arguments[0].click();", [$element]);
答案 3 :(得分:-1)
我发现有时网页没有完全加载,答案很简单,只需添加一个 time.sleep(2)