Hon*_*ong 8 python selenium google-chrome selenium-chromedriver selenium-webdriver
我是Selenium的新人,我现在可以用selenium和Chromedriver做基本的自动测试,代码运行正常,但问题是Chrome浏览器总是在后端自动更新,Chrome更新后代码总是无法运行. 我知道我需要下载新的 chromedriver 来解决这个问题,但我想知道是否有任何方法可以在不禁用 chromebrowser 更新的情况下解决这个问题?tks。
我使用的是 Windows 10 / Chrome 版本 67 / Python 3.6.4 / Selenium 3.12.0
不,除了更新ChromeDriver二进制版本之外别无选择,而Chrome 浏览器会不断自动更新。
每个Chrome 浏览器都是在对现有功能添加、修改和删除某些功能后发布的。为了符合当前的浏览器功能集,Chrome 团队会不时发布兼容的ChromeDriver二进制文件。这些ChromeDriver二进制文件能够与Chrome 浏览器交互。某些版本的ChromeDriver二进制文件支持特定范围的Chrome 浏览器版本(一些最新版本),如下所示:
ChromeDriver v 84.0.4147.30 (2020-05-28)
Supports Chrome version 84
ChromeDriver v 83.0.4103.39 (2020-05-05)
Supports Chrome version 83
ChromeDriver v 82被有意跳过。
ChromeDriver v 81.0.4044.138 (2020-05-05)
Supports Chrome version 81
ChromeDriver v 80.0.3987.106 (2020-02-13)
Supports Chrome version 80
ChromeDriver v 79.0.3945.36 (2019-11-18)
Supports Chrome version 79
ChromeDriver v 78.0.3904.70 (2019-10-21)
Supports Chrome version 78
ChromeDriver v 77.0.3865.40 (2019-08-20)
Supports Chrome version 77
ChromeDriver v 76.0.3809.126 (2019-08-20)
Supports Chrome version 76
ChromeDriver v 75.0.3770.8 (2019-04-29)
Supports Chrome version 75
ChromeDriver v 74.0.3729.6 (2019-03-14)
Supports Chrome version 74
ChromeDriver v 73.0.3683.68 (2019-03-06)
Supports Chrome version 73
ChromeDriver v 2.46 (2019-02-01)
Supports Chrome v71-73
ChromeDriver v 2.45 (2018-12-10)
Supports Chrome v70-72
ChromeDriver v 2.44 (2018-11-19)
Supports Chrome v69-71
ChromeDriver v 2.43 (2018-10-16)
Supports Chrome v69-71
ChromeDriver v 2.42 (2018-09-13)
Supports Chrome v68-70
ChromeDriver v 2.41 (2018-07-27)
Supports Chrome v67-69
ChromeDriver v 2.40 ( 2018-06-07 )
Supports Chrome v66-68
ChromeDriver v 2.39 (2018-05-30)
Supports Chrome v66-68
ChromeDriver v 2.38 ( 2018-04-17 )
Supports Chrome v65-67
ChromeDriver v 2.37 ( 2018-03-16 )
Supports Chrome v64-66
ChromeDriver v 2.36 ( 2018-03-02 )
Supports Chrome v63-65
ChromeDriver v 2.35 ( 2018-01-10 )
Supports Chrome v62-64
ChromeDriver v 2.34 ( 2017-12-10 )
Supports Chrome v61-63
ChromeDriver v 2.33 (2017-10-03)
Supports Chrome v60-62
ChromeDriver v 2.32 (2017-08-30)
Supports Chrome v59-61
ChromeDriver v 2.31 (2017-07-21)
Supports Chrome v58-60
ChromeDriver v 2.30 (2017-06-07)
Supports Chrome v58-60
ChromeDriver v 2.29 (2017-04-04)
Supports Chrome v56-58
为了让您的脚本/程序与更新的Chrome 浏览器交互,您必须根据兼容性使ChromeDriver二进制文件的版本与Chrome 浏览器同步。
我正在使用这个对我有用的库。
https://pypi.org/project/chromedriver-autoinstaller/
项目介绍
chromedriver-autoinstaller 自动下载并安装支持当前安装的 chrome 版本的 chromedriver。该安装程序支持 Linux、MacOS 和 Windows 操作系统。
安装
pip install chromedriver-autoinstaller
例子
from selenium import webdriver
import chromedriver_autoinstaller
chromedriver_autoinstaller.install()  # Check if the current version of chromedriver exists
                                      # and if it doesn't exist, download it automatically,
                                      # then add chromedriver to path
driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
编辑。我也使用 @ATJ 评论的选项,但用于定义 chrome 的 binary_location() 而不是 CHROMEDRIVER_PATH。实际上,我在这个扩展中喜欢的事情之一是不需要指定这个路径,因为它已经处理了这个问题。在使用它之前,我常常花时间放置路径,搜索路径,将驱动程序的副本放入项目文件夹或系统路径文件夹中。
我还用这个快速代码制作了一个模板来使用硒,我用它打开新文件,然后继续,就是这样:
pip install chromedriver-autoinstaller
还有这个快速脚本可以在新电脑上第一次使用时在终端上运行
from selenium import webdriver
import chromedriver_autoinstaller
chromedriver_autoinstaller.install()  # Check if the current version of chromedriver exists
                                      # and if it doesn't exist, download it automatically,
                                      # then add chromedriver to path
driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
-我的模板的实际完整版本(留下注释更快并减少重复工作,取消注释使其更加依赖更少)
import chromedriver_autoinstaller
from selenium import webdriver
chromedriver_autoinstaller.install()
options = webdriver.ChromeOptions()
options.binary_location = ('C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe')
driver = webdriver.Chrome(options=options)
编辑。2 -带有二进制loc的我的模板的实际完整版本。出色地 。我刚刚使用 binary_location 测试了代码,它也有效。好吧,不知道为什么它以前不起作用,这个位置是默认的,所以不应该改变,除非安装 chrome 时人改变了。现在重温它是一件好事,我刚刚从我未来的所有使用中保存了一行。
import os
os.system("pip install  selenium ")
os.system("pip install  chromedriver_autoinstaller ")
| 归档时间: | 
 | 
| 查看次数: | 22171 次 | 
| 最近记录: |