()
| 12 | let serviceInitialized = false; |
| 13 | |
| 14 | export function getWebDriver(): webdriver.WebDriver { |
| 15 | if (!driver) { |
| 16 | const chromeDriverBin = process.env['CHROMEDRIVER_BIN'] || process.env['CHROMEDRIVER']; |
| 17 | if (!serviceInitialized && chromeDriverBin) { |
| 18 | const service = new chrome.ServiceBuilder(chromeDriverBin).build(); |
| 19 | chrome.setDefaultService(service); |
| 20 | serviceInitialized = true; |
| 21 | } |
| 22 | |
| 23 | const options = new chrome.Options(); |
| 24 | const chromeBin = process.env['CHROME_BIN'] || process.env['CHROME_HEADLESS_BIN']; |
| 25 | if (chromeBin) { |
| 26 | options.setChromeBinaryPath(chromeBin); |
| 27 | } |
| 28 | options.headless(); |
| 29 | options.addArguments( |
| 30 | '--no-sandbox', |
| 31 | '--headless', |
| 32 | '--disable-gpu', |
| 33 | '--disable-dev-shm-usage', |
| 34 | '--hide-scrollbars', |
| 35 | '--mute-audio', |
| 36 | ); |
| 37 | |
| 38 | driver = new webdriver.Builder().forBrowser('chrome').setChromeOptions(options).build(); |
| 39 | } |
| 40 | return driver; |
| 41 | } |
| 42 | |
| 43 | export async function quitWebDriver(): Promise<void> { |
| 44 | if (driver) { |
no test coverage detected