selenium 开始使用时出现的坑
chrome 80.0.3987.116时按以前的用法时出现的错误
使用前一定得将 chromedriver.exe 文件拷贝到 Python安装目录下的 Scripts目前下,或者在系统的搜索路径上可以被执行
1.程序先从 selenium 引入 webdriver,引入 chrome 程序的选择项目 Options:
老版本可用:from selenium.webdriver.driver.options import Options
但是在chrome 80.0.3987.116时报错
需要调整为:from selenium.webdriver.chrome.options import Options
2.程序可以正常运行但出现以下错误
DeprecationWarning: use options instead of chrome_options driver = webdriver.Chrome(chrome_options=chrome_options)
以上错误只提示警告信息但不影响运行
需要将“chrome_options”改成“options”即可,此问题应该在最近的版本更改的,我使用的是selenium==3.141.0,有兴趣的话可以去看官方文档进行确定那个版本
3.使用class标签定位时报错:
如:message: no such element: Unable to locate element: {"method":"class name"
在测试过程中,定位一个验证码图片时,由于执行速度过快,浏览器还没有接收到服务端发出的信息,导致无法找到该class信息。
解决方法(1)强制增加延时
time.sleep(1) #在执行查询之前,加一个延时
image_info = self.track.get_image()
解决方法(2)自动检测
增加一个自动检测,如果10秒内还未成功,则报错。假如后续网站访问速度加快,则可以减少程序执行等待的时间。
self.driver.implicitly_wait(10)
hehe = self.driver.find_element_by_class_name("verify-img-panel")