错误:urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=‘127.0.0.1’, port=9411): Max retries exceeded with url: /session/8b9f22e1b057e9ff1920333fd46f3d9d/element (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x053EC610>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。’))
问题分析
在使用python+selenium做UI自动化时,单个脚本执行通过,多个脚本执行时,执行到第二个时失败。
在tear_down中都调用了driver的quit方法,按照上述程序的执行过程,应该没有什么问题,应该全部都可以执行成功的。
百度了很多,都没有得到解决。
最终断点发现,其实在执行第二个 test方法时,还是使用的第一个test中实例出来的driver,而此时第一个test中的driver已经被设置为None了。
但此时还去使用为None的driver去做操作(例如做:self.driver.find_element_by_css_selector())。因为driver为None,即ChromeDriver开启的服务不存在了,因此Urlib中报错了。
解决方法
每次执行test方法时都使用同一个 driver 对象即可。
小结:
所以上面的核心是,如果用已经quit() 的driver去做 操作就会包出错。
当出现上述 “urllib3.exceptions.MaxRetryError” 时,先检查一下你的driver对象是不是已经做了quit()了。
————————————————
版权声明:本文为优快云博主「Best陈维」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/u012205706/article/details/111982545