今天需要用Selenium调试一个网页,发现Chrom版本太高了(116.0.5845.96),ChromeDriver跟不上版本了(最新114.0.5735.90),下面是解决方式。

下载老版本Chrome

最全的Chrome历史版本网址

找到一个与ChromeDriver最新版本对应的Chrome版本下载

下载完成解压

image-20230823112019569

这个可以当做专门调试Selenium的Chrome(开发版)

然后移动到一个不会被误删的位置,比如应用程序

直接拖进去即可,然后就能在app调度中心看到它了

image-20230823112147896

下载ChromeDriver

下载地址

下载最新版的即可

下载完毕之后解压到跟Chromium可执行文件同级目录即可,因为我们后面要添加环境变量,就直接把它俩一起添加进去了!

比如我这里的是/Applications/Chromium.app/Contents/MacOS

那就挪到这个位置

image-20230823112526524

添加环境变量

我用的是zsh

1
vim ~/.zshrc

添加到最后一行

1
export PATH="/Applications/Chromium.app/Contents/MacOS:$PATH"

最后执行

1
source ~/.zshrc

Python调试

调试之前,需要在终端打开一个Chromium

执行

1
Chromium --remote-debugging-port=19222 --user-data-dir="~/ChromeProfile"

注意: 如果不添加到环境变量的话,该命令是无法执行成功的

这个时候我们就可以通过19222端口来调试该浏览器了~

1
2
3
4
5
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:19222")
driver = webdriver.Chrome(options=options)
driver.get('https://www.baidu.com')

总结

该方式可以把调试的Chrome和日常使用的Chrome独立开,而且Chrome版本可定制