win10,python3.8.10。
selenium版本如下(用pip38 show selenium查看):
在定位中,定位了一个按钮(特点:button下还有span然后才是文本),代码如下:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
confirm_button=WebDriverWait(xxx_driver, 5).until(
EC.element_to_be_clickable((By.XPATH,'//button/span[contains(text(), "确定")]'))
)
定位是没有问题的。然后执行如下点击代码:
confirm_button.click()
就会报错了:element click intercepted: Element <span>...</span> is not clickable。
解决办法:
将点击代码改为如下即可:
webdriver.ActionChains(xxx_driver).move_to_element(confirm_button).click(confirm_button).perform()
可以参考我的文章: selenium中出现 Other element would receive the click的解决方式-CSDN博客
也可以参考文章:
或者:
https://www.cnblogs.com/soundcode/p/15910729.html
对于这篇文章,我测试第一种方法并不好用,第二种好用。