Fix issue with getting browser version from Chrome-for-Testing

This commit is contained in:
Michael Mintz 2024-03-16 11:54:33 -04:00
parent f2b3aee6b2
commit d45641459b
1 changed files with 15 additions and 13 deletions

View File

@ -232,25 +232,27 @@ def get_binary_location(browser_type, prefer_chromium=False):
def get_browser_version_from_binary(binary_location):
try:
path = binary_location
pattern = r"\d+\.\d+\.\d+"
quad_pattern = r"\d+\.\d+\.\d+\.\d+"
if os_name() == OSType.WIN and os.path.exists(path):
path = path.replace(r"\ ", r" ").replace("\\", "\\\\")
cmd_mapping = (
'''powershell -command "&{(Get-Command '%s')'''
'''.Version.ToString()}"''' % path
)
quad_version = read_version_from_cmd(cmd_mapping, quad_pattern)
if quad_version and len(str(quad_version)) >= 9: # Eg. 122.0.0.0
return quad_version
version = read_version_from_cmd(cmd_mapping, pattern)
if version and len(str(version)) >= 7: # Eg. 122.0.0
return version
if binary_location.count(r"\ ") != binary_location.count(" "):
binary_location = binary_location.replace(" ", r"\ ")
cmd_mapping = binary_location + " --version"
pattern = r"\d+\.\d+\.\d+"
quad_pattern = r"\d+\.\d+\.\d+\.\d+"
quad_version = read_version_from_cmd(cmd_mapping, quad_pattern)
if quad_version and len(str(quad_version)) >= 9: # Eg. 115.0.0.0
if quad_version and len(str(quad_version)) >= 9:
return quad_version
version = read_version_from_cmd(cmd_mapping, pattern)
if not version and os_name() == OSType.WIN and os.path.exists(path):
path = path.replace(r"\ ", r" ").replace("\\", "\\\\")
cmd_mapping = (
'''powershell -command "&{(Get-Item '%s')'''
'''.VersionInfo.ProductVersion}"''' % path
)
quad_version = read_version_from_cmd(cmd_mapping, quad_pattern)
if quad_version and len(str(quad_version)) >= 9:
return quad_version
version = read_version_from_cmd(cmd_mapping, pattern)
return version
except Exception:
return None