UNPKG

selenium-webdriver-mcp

Version:
56 lines 2.37 kB
import { Builder } from 'selenium-webdriver'; import { Options as ChromeOptions } from 'selenium-webdriver/chrome.js'; import { Options as FirefoxOptions } from 'selenium-webdriver/firefox.js'; import { Options as EdgeOptions } from 'selenium-webdriver/edge.js'; import { Options as SafariOptions } from 'selenium-webdriver/safari.js'; export class BrowserService { static async createChromeDriver(options = {}) { const chromeOptions = new ChromeOptions(); if (options.headless) { chromeOptions.addArguments('--headless=new'); } if (options.arguments) { options.arguments.forEach(arg => chromeOptions.addArguments(arg)); } return new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build(); } static async createEdgeDriver(options = {}) { const edgeOptions = new EdgeOptions(); if (options.headless) { edgeOptions.addArguments('--headless=new'); } if (options.arguments) { options.arguments.forEach(arg => edgeOptions.addArguments(arg)); } return new Builder().forBrowser('edge').setEdgeOptions(edgeOptions).build(); } static async createFirefoxDriver(options = {}) { const firefoxOptions = new FirefoxOptions(); if (options.headless) { firefoxOptions.addArguments('--headless'); } if (options.arguments) { options.arguments.forEach(arg => firefoxOptions.addArguments(arg)); } return new Builder().forBrowser('firefox').setFirefoxOptions(firefoxOptions).build(); } static async createSafariDriver() { const safariOptions = new SafariOptions(); return new Builder().forBrowser('safari').setSafariOptions(safariOptions).build(); } static async createDriver(browser, options = {}) { switch (browser) { case 'chrome': return this.createChromeDriver(options); case 'edge': return this.createEdgeDriver(options); case 'firefox': return this.createFirefoxDriver(options); case 'safari': return this.createSafariDriver(); default: throw new Error(`Unsupported browser: ${browser}`); } } } //# sourceMappingURL=browserService.js.map