UNPKG

appium-chromium-driver

Version:

Appium driver for Chromium-based browsers that work with Chromedriver

62 lines (55 loc) 1.89 kB
import {getWindowsExecutableCandidates, readBrowserVersion} from '../utils'; const DEFAULT_WIN_CANDIDATES = () => 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. */ export function getBrowserCandidates(): string[] { 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. */ export async function discoverBrowserVersion(browserBinary?: string): Promise<string> { if (browserBinary) { const version = await 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 readBrowserVersion(binary); if (version) { return version; } } throw new Error(`Could not determine browser version from candidates: ${candidates.join(', ')}`); }