一、确认浏览器版本
在浏览器的地址栏,输入chrome://version/,回车后即可查看到对应版本
或按照下图步骤
二、根据浏览器版本号找到对应的chromedriver版本
- 114及之前的版本:http://chromedriver.storage.googleapis.com/index.html
- 116版本:https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/116.0.5845.96/win64/chromedriver-win64.zip
- 117、118、119版本:https://googlechromelabs.github.io/chrome-for-testing/
- 点击Stable,选择对应的驱动下载即可(可选Stable 稳定版本或更高版本的测试版)
- 点击Stable,选择对应的驱动下载即可(可选Stable 稳定版本或更高版本的测试版)
- 解压chromedriver文件,放置python的安装目录下
三、配置环境变量
- 设置系统属性
- 点击我的电脑/此电脑>>右键点击属性>>点击高级系统设置>>环境变量>>系统变量
- 点击系统变量中的path,点击新增,并将chrome的安装目录复制,填入后,点击确定。
四、确认chromedriver是否安装成功及解决方式
在pycharm里执行以下代码,能打开浏览器访问,即为成功
from selenium import webdriver
driver = webdriver.Chrome()
# 登录百度
def main():
driver.get("https://baidu.com/")
if __name__ == '__main__':
main()
五、一些特殊情况的处理
1、如果有出现网页闪退的情况,有以下几种解决方式:
1.1、降低selenium版本,使用4.1.1 / 4.5.0 版本
ip --default-timeout=100 install selenium==4.1.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
1.2、发现登录后还是闪退,但是版本号都是对应的,可能是因为driver的全局变量问题导致的,把driver放在函数外,为全局不会闪退
from selenium import webdriver
driver = webdriver.Chrome()
# 登录百度
def main():
driver.get("https://baidu.com/")
if __name__ == '__main__':
main()
1.3、不设置driver为全局,放在函数内会闪退
from selenium import webdriver
# 登录百度
def main():
driver = webdriver.Chrome()
driver.get("https://baidu.com/")
if __name__ == '__main__':
main()
1.4、也可以把driver放在函数内,只要设置为全局变量就可以
from selenium import webdriver
# 登录百度
def main():
global driver # 设置全局变量
driver = webdriver.Chrome()
driver.get("https://baidu.com/")
if __name__ == '__main__':
main()
2、chromedriver版本补充:
由于有些chromedriver版本在上述链接中找不到对应的版本,可以在下面链接中的版本号(119.0.6045.105)替换成自己需要的版本号
https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/119.0.6045.105/win64/chromed
3、在搭建Selenium的web自动测试环境的时候,明明成功安装了Selenium,编写程序运行时却报错:ModuleNotFoundError: No module named ‘selenium‘,如下图所示的情况:
3.1、排查python的解释器路径是否正确:打开【文件】中的【设置】,点击【项目:pythonProject】中的【Python解释器】,选择我的python解释器正确安装位置
3.2、排查python解释器是否安装了selenium:打开【文件】中的【设置】,点击【项目:pythonProject】中的【Python解释器】,未安装的点击“+”进行搜索安装
看到Selenium库后,就可以点击确定后再回去运行程序了,就不会再报错:ModuleNotFoundError: No module named ‘selenium‘了。