我正在运行一个使用硒的应用程序,我想知道实际安装的chrome浏览器版本,然后再运行Chrome驱动程序,以避免出于兼容性原因出现任何异常。我知道我可以使用driver = webdriver.Chrome("path\to\chromedriver.exe")
然后driver.capabilities['browserVersion']
显示版本,但如果Chrome驱动程序版本与实际的chrome浏览器版本不同,则会引发异常。
谢谢
编辑:实际上,我为自己找到了答案,找到了解决方案:
from win32com.client import Dispatch
def get_version_via_com(filename):
parser = Dispatch("Scripting.FileSystemObject")
try:
version = parser.GetFileVersion(filename)
except Exception:
return None
return version
if __name__ == "__main__":
paths = [r"C:Program FilesGoogleChromeApplicationchrome.exe",
r"C:Program Files (x86)GoogleChromeApplicationchrome.exe"]
version = list(filter(None, [get_version_via_com(p) for p in paths]))[0]
print(version)
# result: 80.0.3987.122
PS:我认为人们一开始就不理解我的问题,我很抱歉我的英语
如果您使用的是硒,则可以使用driver.capabilities
字典获取chrome浏览器版本。
driver.capabilities['browserVersion']
早期版本的chromedriver存储了chrome浏览器版本driver.capabilities['version']
。如果您想获得 chrome 浏览器版本而不必担心这一点,您可以使用以下代码。
if 'browserVersion' in driver.capabilities:
print(driver.capabilities['browserVersion'])
else:
print(driver.capabilities['version'])