【发布时间】:2019-12-17 20:47:35
【问题描述】:
我正在使用 selenium 运行应用程序,并且我想知道实际安装的 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 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:我认为一开始人们不理解我的问题,对不起我的英语
【问题讨论】:
-
您找到解决方案了吗?如果是的话,如果您分享它,将不胜感激。谢谢。
-
@mikey 嗨,谢谢您理解我的问题,解决方案已发布,您现在可以查看并询问我是否需要明确。
-
感谢您发布解决方案,为我节省了一些时间 :)。其实你只需要Dispatch:win32com.client.Dispatch.Dispatch("Scripting.FileSystemObject").GetFileVersion(paths[1]),结果在我的Win10盒子里是'80.0.3987.116'。
-
@mikey 感谢您的纠正,我已经删除了
netifaces模块,因为我在一个文件中进行了许多测试,所以我忘了删除多余的模块 -
我已经添加了解决方案,因为由于线程被关闭,我无法提供答案。
标签: python google-chrome selenium-chromedriver