Skip to main content
Glama

Selenium MCP Server

by themindmod
seleniumService.ts2.34 kB
import { Builder, WebDriver } from 'selenium-webdriver'; // Remove browser-specific imports entirely // import * as chrome from 'selenium-webdriver/chrome'; // import * as firefox from 'selenium-webdriver/firefox'; // Basic WebDriver instance management let driver: WebDriver | null = null; /** * Initializes the WebDriver instance without explicit options. * Relies on WebDriver executable being in PATH. */ export async function initializeWebDriver(browser: 'chrome' | 'firefox' = 'chrome'): Promise<WebDriver> { if (driver) { console.warn('WebDriver already initialized.'); return driver; } try { console.log(`Initializing WebDriver for ${browser} (auto-detected driver)...`); // Remove options creation and setting // const options = browser === 'chrome' ? new chrome.Options() : new firefox.Options(); // Simplify builder - remove setOptions calls let builder = new Builder().forBrowser(browser); // If specific service path is needed, that might still require the submodule import // if (browser === 'chrome') { // builder.setChromeService(new chrome.ServiceBuilder('/path/to/chromedriver')); // } driver = await builder.build(); console.log('WebDriver initialized successfully.'); return driver; } catch (error) { console.error('Failed to initialize WebDriver:', error); // Provide a more helpful error message if it fails here throw new Error(`WebDriver initialization failed. Ensure ${browser} and its corresponding WebDriver (e.g., chromedriver) are installed and in your system PATH. Error: ${error instanceof Error ? error.message : error}`); } } /** * Returns the active WebDriver instance. */ export function getWebDriver(): WebDriver { if (!driver) { throw new Error('WebDriver has not been initialized. Call initializeWebDriver first.'); } return driver; } /** * Gracefully quits the WebDriver session. */ export async function quitWebDriver(): Promise<void> { if (driver) { console.log('Shutting down WebDriver...'); try { await driver.quit(); driver = null; console.log('WebDriver shut down successfully.'); } catch (error) { console.error('Error shutting down WebDriver:', error); } } else { console.log('WebDriver not initialized, nothing to shut down.'); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/themindmod/selenium-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server