如果你的程序是这样写死了浏览器的路径
以谷歌为例:
谷歌浏览器软件安装的位置
self.option.binary_location = 'C:/Program Files/Google/Chrome/Application/chrome.exe'
谷歌驱动器的位置
self.driver = webdriver.Chrome(executable_path='D:/chromedriver.exe',
chrome_options=self.option)
而生成的程序在自己电脑上可以正常运行,而在对方电脑上出现闪退或者报错chromedriver需要执行的路径,解决的思路和办法如下:
1.闪退,无报错,打不开谷歌浏览器:
①注意对方的chrome浏览器装在哪个位置?
我的:C:/Program Files/Google/Chrome/Application/chrome.exe
复制这个路径到输入框里可以直接打开谷歌浏览器那就是正确路径
②注意对方谷歌版本,不同谷歌版本有对应的chromedriver.exe
chromedriver驱动下载链接
32/64位的谷歌都可以使用驱动,因为驱动是win32的
版本号前面的107.0.5304 要是一样的才是对应版本
对方的电脑是什么系统就要下载什么系统的驱动。如果自己是win系统自己用exe那就下载win的,如果这个exe还要发送给对方,那就要考虑对方的系统是mac还是win或者是linux,然后下载对应系统的chromedriver驱动。我是windows系统,所以下载win32
2.报错,打不开谷歌浏览器
①报错提示驱动可执行文件需要路径,说明chromedriver.exe存放的路径不对或者是没有下载这个驱动,如果没有下载则看上一步找准对应版本谷歌驱动
解决方法:
def函数定义里写的chromedriver.exe的路径在哪里,就要把谷歌的驱动放在哪里,比如我写的路径在D盘,那么我的驱动就放在D盘
谷歌驱动器的路径
self.driver = webdriver.Chrome(executable_path='D:/chromedriver.exe',
chrome_options=self.option)
②报错提到ssl
解决方法:
在函数定义初始函数时,要加上几行代码避免报错
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation','enable-logging'])
self.option.add_argument("--no-sandbox")
self.option.add_argument('--ignore-certificate-errors') # ssl
self.option.add_argument('--ignore-ssl-errors')
3.当没有闪退也能自动打开谷歌浏览器了,但程序运行出现了问题
则要注意对方电脑的速度,有时候对方电脑缓冲比较慢,比较卡,而我们写的代码都是几秒之间就能完成的自动化输入、点击。对方还没运行出第一步的成果,代码已经做了第二步的操作,就会报错。比如页面都还没跳转过去,就已经在搜索html当然会搜索不到,就会报错。
解决方法:
所以我们可以适当的写上一些代码让程序等一等。
time.sleep(15) #多缓冲一下,电脑比较慢(强制等待15s)
self.driver.implicitly_wait(10)#程序没来,等10s,来了就不用等了