是否可以在 python 运行时检查 chromedriver.exe 版本?
Is it possible to check chromedriver.exe version at runtime in python?
我正在尝试检查 chrome 和 chrome 驱动程序的兼容性,以提示用户在需要时下载正确的 chrome 驱动程序版本。我希望以类似于下面显示的检查 chrome.exe 的方式检查 chrome 驱动程序的版本。
from win32api import GetFileVersionInfo
info = GetFileVersionInfo(path/to/chrome.exe)
如果我有任何误解,请告诉我。
您可以使用 driver. Capabilities ['browserversion ']
和 driver. Capabilities ['chrome'] ['chromedriverversion ']. Split (' ') [0]
获取 chrome 和 chrome 驱动程序的版本。
然后截取版本号的前2位进行比较。如果不一致,您可以提醒用户下载正确的chrome驱动程序版本。
最小示例:
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")
调试:
您还可以提示用户正确的版本。
Chrome 和 Chrome 下载页面上所述的驱动程序版本:
如果您使用的是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 的旧版本,请参阅
针对特定 chrome 版本的 crhomedriver select 版本有一般指南:https://sites.google.com/a/chromium.org/chromedriver/downloads/version-selection。
详情请参考:
注:
较早版本的 chrome 驱动程序存储了 chrome 浏览器版本 driver.capabilities['version']
。如果你想获得 chrome 浏览器版本而不必担心这个,你可以使用下面的代码。
if 'browserVersion' in driver.capabilities:
print(driver.capabilities['browserVersion'])
else:
print(driver.capabilities['version'])
可能对您有用的链接:
How can I get Chrome Browser Version running now with Python? [closed]
对于版本 98.0.1108.50,我通过控制台中的 运行 在 Windows 上获得版本:
(必须cd到文件所在的目录msedgedriver.exe)
msedgedriver.exe-v
然后我得到:
MSEdgeDriver 98.0.1108.50 (4203d3deac4b85375d37f4d77d1ffb334a2a6138)
在 Python 中,我无法获得驱动程序版本,但浏览器可以打印如下:
print("Edge 浏览器版本:" + self.driver.capabilities['browserVersion'])
或者你可以试试这个:
import subprocess
commands = r"cd ../../ && cd [path to your driver] && msedgedriver.exe -v"
process = subprocess.run(commands, shell=True, check=True, stdout=subprocess.PIPE, universal_newlines=True)
output = process.stdout
print("Chromium Driver Version: " + output)
我正在尝试检查 chrome 和 chrome 驱动程序的兼容性,以提示用户在需要时下载正确的 chrome 驱动程序版本。我希望以类似于下面显示的检查 chrome.exe 的方式检查 chrome 驱动程序的版本。
from win32api import GetFileVersionInfo
info = GetFileVersionInfo(path/to/chrome.exe)
如果我有任何误解,请告诉我。
您可以使用 driver. Capabilities ['browserversion ']
和 driver. Capabilities ['chrome'] ['chromedriverversion ']. Split (' ') [0]
获取 chrome 和 chrome 驱动程序的版本。
然后截取版本号的前2位进行比较。如果不一致,您可以提醒用户下载正确的chrome驱动程序版本。
最小示例:
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")
调试:
您还可以提示用户正确的版本。
Chrome 和 Chrome 下载页面上所述的驱动程序版本:
如果您使用的是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 的旧版本,请参阅
针对特定 chrome 版本的 crhomedriver select 版本有一般指南:https://sites.google.com/a/chromium.org/chromedriver/downloads/version-selection。
详情请参考:
注:
较早版本的 chrome 驱动程序存储了 chrome 浏览器版本 driver.capabilities['version']
。如果你想获得 chrome 浏览器版本而不必担心这个,你可以使用下面的代码。
if 'browserVersion' in driver.capabilities:
print(driver.capabilities['browserVersion'])
else:
print(driver.capabilities['version'])
可能对您有用的链接:
How can I get Chrome Browser Version running now with Python? [closed]
对于版本 98.0.1108.50,我通过控制台中的 运行 在 Windows 上获得版本:
(必须cd到文件所在的目录msedgedriver.exe)
msedgedriver.exe-v
然后我得到: MSEdgeDriver 98.0.1108.50 (4203d3deac4b85375d37f4d77d1ffb334a2a6138)
在 Python 中,我无法获得驱动程序版本,但浏览器可以打印如下: print("Edge 浏览器版本:" + self.driver.capabilities['browserVersion'])
或者你可以试试这个:
import subprocess
commands = r"cd ../../ && cd [path to your driver] && msedgedriver.exe -v"
process = subprocess.run(commands, shell=True, check=True, stdout=subprocess.PIPE, universal_newlines=True)
output = process.stdout
print("Chromium Driver Version: " + output)