appium-chromium-driver
Version:
Appium driver for Chromium-based browsers that work with Chromedriver
63 lines • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.listBrowserBinaryCandidates = listBrowserBinaryCandidates;
exports.detectBrowserVersion = detectBrowserVersion;
const utils_1 = require("../utils");
const DEFAULT_WIN_CANDIDATES = () => (0, utils_1.getWindowsExecutableCandidates)([
'Google\\Chrome\\Application',
'Google\\Chrome Beta\\Application',
'Google\\Chrome Dev\\Application',
'Google\\Google Chrome for Testing\\Application',
'Chromium\\Application',
], 'chrome.exe');
const DEFAULT_MAC_CANDIDATES = [
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
'/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta',
'/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome Dev',
'/Applications/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing',
'/Applications/Chromium.app/Contents/MacOS/Chromium',
];
const DEFAULT_LINUX_CANDIDATES = [
'chrome',
'google-chrome',
'google-chrome-beta',
'google-chrome-unstable',
'chromium',
'chromium-browser',
];
/**
* List platform-specific Chrome/Chromium browser binary candidates.
* @returns A list of executable paths or command names.
*/
function listBrowserBinaryCandidates() {
if (process.platform === 'win32') {
return DEFAULT_WIN_CANDIDATES();
}
else if (process.platform === 'darwin') {
return DEFAULT_MAC_CANDIDATES;
}
return DEFAULT_LINUX_CANDIDATES;
}
/**
* Detect installed Chrome/Chromium browser version from explicit binary or default candidates.
* @param browserBinary Optional explicit browser binary path or command.
* @returns Detected browser version.
*/
async function detectBrowserVersion(browserBinary) {
if (browserBinary) {
const version = await (0, utils_1.readBrowserVersion)(browserBinary);
if (version) {
return version;
}
throw new Error(`Could not determine browser version from binary: ${browserBinary}`);
}
const candidates = listBrowserBinaryCandidates();
for (const binary of candidates) {
const version = await (0, utils_1.readBrowserVersion)(binary);
if (version) {
return version;
}
}
throw new Error(`Could not determine browser version from candidates: ${candidates.join(', ')}`);
}
//# sourceMappingURL=browser-candidates.js.map