相信大家在用selenium自动化点击的时候,经常遇到点击不成功的情况,可以改成如下代码:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
result = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '点击的xpath'))) # 不仅仅要定位到,还需要能点击才行
result.send_keys(Keys.ENTER) # 代替click
# driver.execute_script("arguments[0].click();", result) # 发现定位到了结果,仍然报错,使用此语句,不用.click()
代码说明:
忽略import部分的第1行,不能用EC.presence_of_element_located,因为不仅要定位到元素,还得可以点击才行;第2行,不要直接用result.click();如果还不成功,可以切换成第3行
相信做以上更改,应该可以解决大部分点击失效的问题。
感谢大家的阅读,有帮助的话麻烦点个赞再走呀,谢谢啦!