【问题标题】:How can I get Chrome Browser Version running now with Python? [closed]如何让 Chrome 浏览器版本现在使用 Python 运行? [关闭]
【发布时间】: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


【解决方案1】:

如果您使用的是 selenium,那么您可以使用 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'])

【讨论】:

  • 我知道,但是当使用 selenium 时:driver = webdriver.Chrome("path\\to\\chromedriver.exe") 程序在运行driver.capabilities['version'] 之前可能会崩溃(原因是 chrome 版本不兼容,所以我必须先检查 chrome 版本)
  • @leminhnguyenHUST 您是否正在寻找一种无需加载 webdriver 即可获取当前 chrome 浏览器版本的方法?
  • 哦对了,我想我们可以使用 Python 的库 like request,可行吗? (我自己的看法)
  • @leminhnguyenHUST 这真的取决于您的要求。对于这个问题,我觉得我的回答已经足够了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 2017-08-06
  • 2014-08-13
  • 2022-01-10
  • 2020-04-28
相关资源
最近更新 更多