1,040
社区成员
发帖
与我相关
我的任务
分享这是我参加朝闻道知识分享大赛的第1篇文章。
因为对自动化测试很感兴趣,本人研究了好一段时间相关selenium的东西,在配置chromedriver的过程中遇到了很多问题,当即在网上找了很多资料,看了很多的文章,可是由于文章太过琐碎(或者说以我的知识理解能力感觉说的都不是很详细),很久都没能解决问题,这导致我学习selenium的时间被延误了很久。再次重新开始搞这些事情的时候,困扰我的仍然是Chrome浏览器自动更新以及chromedriver驱动与Chrome浏览器不匹配的问题...在不懈努力下,我终于成功了!成功的当天晚上我就想做一篇文章,希望看到我文章的小伙伴们可以少在chromedriver的问题上浪费太多时间吧...
Chrome浏览器全版本下载链接:https://downzen.com/en/windows/google-chrome/download/
里面涵盖了Windows系统从50.0.2661.87到118.0.5993.118(截至目前最新版本)的所有版本Chrome浏览器,可以根据自己的需求进行下载。
在这里先和小白说一下,为了确保你的Chrome浏览器与你的chromedriver版本适配(如果不适配的话你的浏览器会一直闪退并且报错),你需要对你所下载的非最新版本的浏览器进行禁止更新操作,在这里我给大家整理了几种禁止Chrome浏览器更新的方法,如果不放心的话可以全部跟着做一遍,彻底解决Chrome浏览器自动更新的问题。
!!!!!自动安装Chrome浏览器后要迅速关掉浏览器,快速进行下列操作!!!!!


最简单的方法之一!!!看到有很多积极评价!!!



仍然首先是按下”Win+R“快捷键打开运行窗口
在输入栏中输入”regedit“并点击”确定“或按下“Enter”打开注册表编辑器

在注册表编辑器中找到并打开”HKEY_LOCAL_MACHINE“文件夹(双击或单击箭头打开)
打开其子目录名为”SOFTWARE“的文件夹
再打开其子目录为”WOW6432Node“的文件夹
找到并右击”Google“文件夹,选择”新建“->"DWORD(32位)值(D)"
右键新建的”新值 #1“,点击”修改“,将其数据名称改为”UpdateDefault“,数据数值为”0“

点击”确定“,保存更改并退出”注册表编辑器“




我还想再唠叨几句...建议不放心的小伙伴们把这四种方法全部照做(我本人就是如此),百分之百你的Chrome浏览器不会再更新了。
除了去设置里面看,还有种比较方便的方式就是在地址栏直接输入chrome://version并按下回车,这样可以更详细的查看到Google Chrome的版本信息。
chromedriver下载链接1:https://registry.npmmirror.com/binary.html?path=chromedriver
chromedriver下载链接2:https://chromedriver.chromium.org/downloads
说明:下载链接1为国内的镜像版,版本截至到114.0.5735.90;下载链接2为chromedriver的官方网站,涵盖了所有版本的chromedriver。
这里还是推荐使用下载链接1,与Chrome浏览器适配(在官方网站推出的最新版本chromedriver中,大多数都是测试版,需要搭配相应测试版本的Chrome浏览器使用,比较麻烦),版本不需完全一致,保持前三个小数点前的数字一致,第三个小数点后的数字差别不大即可。
例:111.0.5563.65版本的Chrome浏览器与111.0.5563.64版本的chromedriver驱动可以适配!

将下载的zip文件解压缩至任意盘中(这里我选择的是E盘)

复制”chromedriver.exe“文件,将其粘贴至Chrome浏览器默认安装路径下的xxx/Application目录下

再再再再一次”Win+R“快捷键打开运行窗口
在输入栏中输入”sysdm.cpl“并点击”确定“或按下“Enter”打开系统属性窗格,点击”高级“选项卡,并点击”环境变量“


双击点开用户变量中的变量”Path“
点击右侧的”新建“,将chromedriver的安装路径和上文提到的Chrome浏览器安装路径,放置在环境变量中,点击”确定“

用同样的方法将chromedriver的安装路径和上文提到的Chrome浏览器安装路径加在系统变量中的变量”Path“中,这里就不再重复了
加完过后点击”确定“,在系统属性界面再次点击”确定“
刚开始我没有注意到selenium4与其他版本有什么不一致,后来发现在我chromedriver与Chrome浏览器配置成功的前提下,在程序运行完毕后会出现浏览器闪退的情况(返回代码为0,证明程序没有问题)。因为熟悉selenium的大佬们可能知道老版本的selenium在进行自动化测试时,如果不使用.quit的代码让浏览器关闭,浏览器是不会自动退出的。
在selenium4中更新了这一机制,使得如果在没有使用time.sleep()的前提下,程序运行结束了就会自动关闭浏览器,大家不要再觉得这是由于自己没有配置好的问题啦!
附上selenium4的官方文档(英文):http://www.selenium.dev/zh-cn/documentation/
附测试代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
结果如下:

好啦!如果你觉得我的文章对你有帮助,请给我点个赞吧!关于配置chromedriver以及selenium的一些其他问题也可以评论、私信问我,感谢大家的观看!
你写得好蛙!)
很高兴写完这篇文章之后知道了selenium可能快要被淘汰了,在上半年推出了DrissionPage,它既能控制浏览器,也能收发数据包,还能把两者合而为一。可兼顾浏览器自动化的便利性和 requests 的高效率。
但是在DrissionPage仍处于不完善的状态下(无法实现某些功能),我们可能仍需要selenium来帮我们做一些事,附上DrissionPage的官方文档。
好啦,大家天天开心,生活愉快!