爬虫中的“句柄无效”错误和selenium.common.exceptions.ElementClickInterceptedException

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)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值