diff --git a/seleniumbase/core/detect_b_ver.py b/seleniumbase/core/detect_b_ver.py index 55253bd4341..22d21baba8d 100644 --- a/seleniumbase/core/detect_b_ver.py +++ b/seleniumbase/core/detect_b_ver.py @@ -234,24 +234,29 @@ def get_browser_version_from_binary(binary_location): path = binary_location 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 - return quad_version - version = read_version_from_cmd(cmd_mapping, pattern) - if not version and os_name() == OSType.WIN and os.path.exists(path): + if 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 + try: + quad_version = read_version_from_cmd(cmd_mapping, quad_pattern) + if quad_version and len(str(quad_version)) >= 9: # Eg. 115.0.0.0 + return quad_version + version = read_version_from_cmd(cmd_mapping, pattern) + if version: + return version + except Exception: + ''' Powershell is not available, use --version instead ''' + pass + cmd_mapping = binary_location + " --version" + quad_version = read_version_from_cmd(cmd_mapping, quad_pattern) + if quad_version and len(str(quad_version)) >= 9: # Eg. 115.0.0.0 + return quad_version + return read_version_from_cmd(cmd_mapping, pattern) except Exception: return None