python - 是否可以在 python 中在运行时检查 chromedriver.exe 版本?

标签 python winapi selenium-chromedriver version

我正在尝试检查 chrome 和 chromedriver 的兼容性,以提示用户在需要时下载正确的 chromedriver 版本。我希望以类似于我检查如下所示的 chrome.exe 的方式检查 chrome 驱动程序的版本。

from win32api import GetFileVersionInfo
info = GetFileVersionInfo(path/to/chrome.exe)

最佳答案

如果我有什么误解,请告诉我。

您可以使用 driver. Capabilities ['browserversion ']driver. Capabilities ['chrome'] ['chromedriverversion ']. Split (' ') [0]获取 chrome 和 chromedriver 的版本。

然后截取版本号的前2位进行比较。如果它们不相同,您可以根据需要提醒用户下载正确的 chromedriver 版本。

最小的例子:

from selenium import webdriver

driver = webdriver.Chrome()
str1 = driver.capabilities['browserVersion']
str2 = driver.capabilities['chrome']['chromedriverVersion'].split(' ')[0]
print(str1)
print(str2)
print(str1[0:2])
print(str2[0:2])
if str1[0:2] != str2[0:2]: 
  print("please download correct chromedriver version")

调试:

enter image description here

您还可以向用户提示正确的版本。

Chrome 和 Chromedriver 版本如下载页面所述:

如果您使用的是 Chrome 79 版,请下载 ChromeDriver 79.0.3945.36

如果您使用的是 Chrome 78 版,请下载 ChromeDriver 78.0.3904.70

如果您使用的是 Chrome 77 版,请下载 ChromeDriver 77.0.3865.40

如果您使用的是 Chrome 76 版,请下载 ChromeDriver 76.0.3809.126

如果您使用的是 Chrome 75 版,请下载 ChromeDriver 75.0.3770.140

如果您使用的是 Chrome 74 版,请下载 ChromeDriver 74.0.3729.6

如果您使用的是 Chrome 73 版本,请下载 ChromeDriver 73.0.3683.68

对于旧版本的 Chrome,请参阅 Barett's anwer

有为特定 chrome 版本选择 crhomedriver 版本的一般指南:https://sites.google.com/a/chromium.org/chromedriver/downloads/version-selection .

更多详情请引用:https://stackoverflow.com/a/55266105/11128312

注:

早期版本的 chromedriver 存储了 chrome 浏览器版本 driver.capabilities['version'] .如果你想获得chrome浏览器版本而不必担心这个,你可以使用下面的代码。
if 'browserVersion' in driver.capabilities:
    print(driver.capabilities['browserVersion'])
else:
    print(driver.capabilities['version'])

可能对您有用的链接:

How to work with a specific version of ChromeDriver while Chrome Browser gets updated automatically through Python selenium

How can I get Chrome Browser Version running now with Python? [closed]

Which ChromeDriver version is compatible with which Chrome Browser version?

关于python - 是否可以在 python 中在运行时检查 chromedriver.exe 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58979318/

相关文章:

python - 用纯python计算NN的梯度

Python Click - 从配置文件提供参数和选项

java - 如何使用 Selenium 定位 Facebook 的生日元素?

python - 无法让 XPath 单击 selenium 中的弹出窗口

带有字典列表的 Python pool.starmap?

python - 如何实现泊松回归?

c++ - 无法使用 DWM 在自定义窗口框架上绘制

c++ - 如何检测windows 8.1开始菜单?

c - 编写蹦床函数

python - 如何使用 selenium python chromedriver 循环访问多个 url 并在新选项卡中打开 url