appium-chromium-driver
Version:
Appium driver for Chromium-based browsers that work with Chromedriver
57 lines • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBrowserCandidates = getBrowserCandidates;
exports.discoverBrowserVersion = discoverBrowserVersion;
const utils_1 = require("../utils");
const DEFAULT_WIN_CANDIDATES = () => (0, utils_1.getWindowsExecutableCandidates)([
'Microsoft\\Edge\\Application',
'Microsoft\\Edge Beta\\Application',
'Microsoft\\Edge Dev\\Application',
], 'msedge.exe');
const DEFAULT_MAC_CANDIDATES = [
'/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge',
'/Applications/Microsoft Edge Beta.app/Contents/MacOS/Microsoft Edge Beta',
'/Applications/Microsoft Edge Dev.app/Contents/MacOS/Microsoft Edge Dev',
];
const DEFAULT_LINUX_CANDIDATES = [
'microsoft-edge',
'microsoft-edge-beta',
'microsoft-edge-dev',
'msedge',
];
/**
* Get platform-specific Microsoft Edge browser binary candidates.
* @returns A list of executable paths or command names.
*/
function getBrowserCandidates() {
if (process.platform === 'win32') {
return DEFAULT_WIN_CANDIDATES();
}
else if (process.platform === 'darwin') {
return DEFAULT_MAC_CANDIDATES;
}
return DEFAULT_LINUX_CANDIDATES;
}
/**
* Discover installed Microsoft Edge browser version from explicit binary or default candidates.
* @param browserBinary Optional explicit browser binary path or command.
* @returns Detected browser version.
*/
async function discoverBrowserVersion(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 = getBrowserCandidates();
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