1.使用selenium爬虫报错:OSError: [WinError 6] 句柄无效
原因:多次爬虫后没有成功关闭chromedriver.exe,导致后台含有多个chromedriver.exe 进程。
解决: 爬虫程序结束后使用driver.quit()
2.使用selenium爬虫时,find到的元素在click时报错:selenium.common.exceptions.ElementClickInterceptedException
具体错误信息:
selenium.common.exceptions.ElementClickInterceptedException: Message: Element <input class="el-radio__original" type="radio"> is not clickable at point (591,572) because another element <span class="el-radio__inner"> obscures it
错误解释:在爬虫过程中查找到的要点击的web element被其他元素覆盖(比如要选择的选项早前已经被选中)。
解决:
原始代码:
noodle= driver.find_elements_by_css_selector("input[value='面食']")
noodle.click()
改成:
noodle= driver.find_elements_by_css_selector("input[value='面食']")
driver.execute_script("arguments[0].click();", noodle)
3、报错:selenium.common.exceptions.ElementNotInteractableException: Message: Element “xxx” could not be scrolled into view
原因:操作对象所在的页面(或者下拉框)没有打开,或者打开的页面显示不完整,例如下界面:
解决:
1)可能上一步的点击操作不正确,进一步确认元素定位是否准确
zongbanxingzheng_ele=driver.find_element_by_xpath("//div[@class='side-normal__container']/div[5]")
zongbanxingzheng_ele.click()
2)上一步操作缓冲等待时间不够,增加时间等待
time.sleep(3)