selenium点击元素失败,ElementClickInterceptedException

使用selenium在点击部分标签时显示以下错误:
browser.find_element_by_css_selector('#blog_detail').click()

selenium.common.exceptions.ElementClickInterceptedException: Message:element click intercepted: Element <>…<> is not clickable at point (xxx, xxx). element click intercepted <>…<>

 

element click intercepted,顾名思义,就是无法点击


如果是标签没有显示在屏幕上,使用以下代码

js = "window.scrollBy(0,1200);"
browser.execute_script(js)

下拉滚动条,让要点击的标签显示在屏幕上,然后点击就不会报错了


或者不管标签有没有显示在屏幕上,都可以使用以下代码

a = browser.find_element(By.CSS_SELECTOR,'xxx')
browser.execute_script("arguments[0].click();",a)

完成点击


目前我就只遇到这两种情况

selenium滚动到element所在位置
需要先最大化

self.browser.maximize_window()

然后

self.browser.execute_script(f'window.scrollTo(0,{load_more.location["y"]})')

3.使用action_chains方法

element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()

4.使用回车代替点击

driver.find_element(By.CSS_SELECTOR,"#submit").send_keys(Keys.ENTER)

 

posted on 2022-03-15 15:45  帅胡  阅读(1668)  评论(0编辑  收藏  举报

导航