赞
踩
1.检查谷歌浏览器的版本:浏览器地址栏输入: chrome://version
2.下载ChromeDriver时一定要对应好自己的浏览器版本,下载链接:CNPM Binaries Mirror (npmmirror.com)下载的时候没有64位的不要慌,32位的是ok的。
3.将下载好的chromedriver保存至Chrome浏览器的安装目录下:
·一说还要把这个exe文件放到python的运行目录中,就是你写.py程序用到chromedriver的那个文件夹,可以放一下也不费劲。
4.环境变量配置:在系统变量path中添加chrome安装目录路径,即chromedriver.exe所在目录。
driver=webdriver.Chrome(executable_path='chromedriver.exe')
这是因为在之前版本executable_path是我们Selenium驱动的存放路径,只有使用executable_path指定出该路径,Selenium才能正常工作,但是Selenium经过版本更新之后,在使用如上写法时,系统就会报错executable_path has been deprecated, please pass in a Service object,所有我们需要添加一个模块并修改一下代码:
- from selenium.webdriver.chrome.service import Service
- from selenium import webdriver
-
- # url地址
- target= 'http://www.baidu.com'
-
- # 定义chrome驱动地址
- path = Service('chromedriver.exe')
-
- # 创建浏览器操作对象
- driver= webdriver.Chrome(service=path)
- driver.get(target)
现在再执行就不会再报错了。
在解决浏览器闪退的问题上,我们有个笨办法,那就是加上time.sleep(20),这样看着是正常了,但是治标不治本,我们并不满意。寻求进一步的解决方案:
晚上有老铁说,把driver从局部变量提出来,提成全局变量,就不会闪退了像这样:
- from selenium import webdriver
-
- driver = webdriver.Chrome()
-
- # 登陆百度
- def main():
- driver.get('https://www.baidu.com/')
-
- if __name__ == "__main__":
- main()
但是实际上没解决,还是会闪退。实际情况是在版本对应没有问题情况下,是selenium版本的问题,最新的selenium就是会在执行完之后自己退出,查了一下,现在电脑里的版本是4.9.0:
只需要给它卸载掉,重新安装4.1.1版本:
闪退成功解决:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。