python - 如何让 Chrome 浏览器版本现在使用 Python 运行?
问题描述
我正在使用 selenium 运行应用程序,并且我想在运行 Chrome 驱动程序之前知道安装的实际 chrome 浏览器版本,以避免出于兼容性原因出现任何异常。我知道我可以使用driver = webdriver.Chrome("path\\to\\chromedriver.exe")
thendriver.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 Files\Google\Chrome\Application\chrome.exe",
r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"]
version = list(filter(None, [get_version_via_com(p) for p in paths]))[0]
print(version)
# result: 80.0.3987.122
PS:我认为人们一开始不理解我的问题,我很抱歉我的英语
解决方案
如果您使用的是 selenium,那么您可以使用字典获取chrome浏览器版本。driver.capabilities
driver.capabilities['browserVersion']
早期版本的 chromedriver 存储了 chrome 浏览器版本driver.capabilities['version']
。如果你想获得 chrome 浏览器版本而不必担心这个,你可以使用下面的代码。
if 'browserVersion' in driver.capabilities:
print(driver.capabilities['browserVersion'])
else:
print(driver.capabilities['version'])
推荐阅读
- blender - 搅拌机绘画现在显示
- android - wifi和蓝牙泛连接共存
- haskell - 比较使用 zip 创建的元组中的布尔值
- tsql - 调试模式下的 SQL Server 查询:查询表?
- firebase - 部署firebase功能时解析触发器错误找不到模块
- c# - 可空的
在实体中导致我的 linq 表达式出现问题 - reactjs - .map 函数中的 If/Else 反应
- angular - 加载时标记为已触摸的子表单组件 - 需要保持不变
- c# - 如何在 ResourceDictionary 中设置可用于背景属性的原色
- ionic-framework - Ionic3 - 电子邮件编辑器 - Object(...) 不是函数