selenium爬虫问题总结

在运行上一篇文章中的爬虫程序的过程中遇到了几个问题,在这里总结一下

1. 不能定位到元素,报错selenium.common.exceptions.NoSuchElementException

网上查了资料又仔细查看了一下网页结构,发现是网页中包含了iframe。
frame实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。
解决方法:如果iframe有name或id的话,直接使用switch_to_frame(“name/id”)

1
2
3
4
def __init__(self):
self.dr = webdriver.Chrome()
self.dr.get('http://www.most.gov.cn/mostinfo/')
self.dr.switch_to.frame("DataList")

2. 改正了iframe的问题后运行程序,报错unknown error: call function result missing ‘value’

原因:chrome和chromedriver版本不匹配


解决方法:升级Chromedriver到匹配的版本

chrome和Chromedriver对应关系表:

chrome版本 Chromedriver版本
v67-69 v2.41
v66-68 v2.40
v66-68 v2.39
v65-67 v2.38
v46-66 v2.37
v63-65 v2.36
v62-64 v2.35
v61-63 v2.34
v60-62 v2.33
v59-61 v2.32
v58-60 v2.31
v58-60 v2.30
Share