作者寄语:Don't worry, be happy!
[出现问题]
点击页面按钮,出现错误element click intercepted
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x00000174F1F59520>
response = {'status': 400, 'value': '{"value":{"error":"element click intercepted","message":"element click intercepted: Element ...\n\\tRtlGetAppContainerNamedObjectPath [0x77757A4E+286]\\n\\tRtlGetAppContainerNamedObjectPath [0x77757A1E+238]\\n"}}'}
C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py:242: ElementClickInterceptedException
[错误原因]
由于selenium执行特别快,页面加载过程需要一点时间,导致selenium执行时,可能找到了元素,但元素未加载完成而处于不可点击状态或者元素未加载完成而某些元素叠加到了此元素之上(叠加之上的元素不可点击)
[解决方法]
使用time.sleep()将等待时间延长,待页面加载完毕后再执行点击操作
# 等待3s,launch才能加载完成
time.sleep(3)
# launch操作
# WebDriverWait:等待10s直到指定元素处于可点击状态,然后点击该元素
WebDriverWait(driver, 10).until(ec.element_to_be_clickable((By.XPATH, '/html/body/div/div/div[3]/div/div/div[2]/div[1]/div[1]/div[3]/button'))).click()