MCPcopy Create free account
hub / github.com/pgadmin-org/pgadmin4 / get_browser_version

Function get_browser_version

tools/update_selenoid_browsers.py:42–112  ·  view source on GitHub ↗

Function returns browser version for specified browser using executable path passed in arguments. :param browser_name: :param executable_path: e.g. /usr/bin/firefox :return: browser version

(browser_name, executable_path)

Source from the content-addressed store, hash-verified

40
41
42def get_browser_version(browser_name, executable_path):
43 """
44 Function returns browser version for specified browser using executable
45 path passed in arguments.
46 :param browser_name:
47 :param executable_path: e.g. /usr/bin/firefox
48 :return: browser version
49 """
50 # On Linux/Mac we run the browser executable with the --version flag,
51 # then parse the output.
52 browser_version_val = None
53 try:
54 result = subprocess.Popen([executable_path, '--version'],
55 stdout=subprocess.PIPE)
56 except FileNotFoundError:
57 print('The specified browser executable could not be found.')
58 sys.exit(1)
59
60 version_str = result.stdout.read().decode("utf-8")
61
62 if browser_name.lower() == "chrome":
63 # Check for 'Chrom' not 'Chrome' in case the user is using Chromium.
64 if "Chrom" not in version_str:
65 print('The specified Chrome executable output an unexpected '
66 'version string: {}.'.format(version_str))
67 sys.exit(1)
68 # On some linux distro `chrome--version` gives output like
69 # 'Google Chrome 80.0.3987.132 unknown\n'
70 # so we need to check and remove the unknown string from the version
71 if version_str.endswith("unknown\n"):
72 version_str = version_str.strip("unknown\n").strip()
73
74 chrome_version = '.'.join(version_str.split()[-1].split('.')[:-2])
75
76 # Make sure browser version has only 1 decimal point
77 if chrome_version.count('.') != 1:
78 print('The specified Chrome executable output an unexpected '
79 'version string: {}.'.format(version_str))
80 sys.exit(1)
81 browser_version_val = chrome_version
82 elif browser_name.lower() == "firefox":
83 if "Firefox" not in version_str:
84 print('The specified Firefox executable output an unexpected '
85 'version string: {}.'.format(version_str))
86 sys.exit(1)
87
88 # Some time firefox --version gives output like
89 # 'Running without a11y support!
90 # Mozilla Firefox 68.7.0esr'
91 # Other output - [root@localhost local]# /usr/bin/firefox --version
92 # Mozilla Firefox 75.0
93 if 'esr' in version_str:
94 firefox_version = '.'.join(
95 version_str.split('esr')[0].split()[-1].split('.')[:-1])
96 else:
97 firefox_version = '.'.join(
98 version_str.split()[-1].split('.')[:-1])
99

Callers 1

Calls 2

decodeMethod · 0.80
joinMethod · 0.80

Tested by

no test coverage detected