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)