Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Chrome浏览器版本现在运行Python?_Python_Google Chrome_Selenium Chromedriver - Fatal编程技术网

如何让Chrome浏览器版本现在运行Python?

如何让Chrome浏览器版本现在运行Python?,python,google-chrome,selenium-chromedriver,Python,Google Chrome,Selenium Chromedriver,我正在运行一个使用selenium的应用程序,在运行chrome驱动程序之前,我想知道实际安装的chrome浏览器版本,以避免因兼容性原因出现任何异常。我知道我可以使用driver=webdriver.Chrome(“path\\to\\chromedriver.exe”)然后driver.capabilities['browserVersion']来显示版本,但如果Chrome驱动程序版本与实际的Chrome浏览器版本不同,则会引发异常 谢谢 编辑: 事实上,我为自己找到了答案,找到了解决方案

我正在运行一个使用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:我想人们一开始不理解我的问题,我为我的英语感到抱歉。如果您使用的是selenium,那么您可以使用
驱动程序.功能
字典获得chrome浏览器版本

driver.capabilities['browserVersion']
chromedriver的早期版本存储了chrome浏览器版本
驱动程序。功能['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版本)@Leminnguyenhust您是否正在寻找一种方法来获取当前的chrome浏览器版本,而无需加载
webdriver
?哦,对了,我认为我们可以使用Python的库,比如
request
,它可行吗?(我个人的看法)@leminnguyennhust这真的取决于你的要求。对于这个问题,我想我的回答足够了。你找到解决办法了吗?如果是的话,如果您能与我们分享,我们将不胜感激。谢谢。@mikey Hi guy,谢谢你理解我的问题,解决方案已经发布。你现在可以检查并问我是否需要澄清。谢谢你发布解决方案,为我节省了一些时间:)。事实上,您只需要分派:win32com.client.Dispatch.Dispatch(“Scripting.FileSystemObject”).GetFileVersion(路径[1])在我的Win10框中生成了“80.0.3987.116”。@mikey感谢您纠正我的错误,我已经删除了
netifaces
模块,因为我在一个文件中处理了许多测试,所以我忘了删除多余的模块。我添加了解决方案,因为由于线程关闭,我无法提供答案。