UNPKG

msedgedriver

Version:
50 lines (49 loc) 1.59 kB
const fs = require("fs"); const path = require("path"); const tcpPortUsed = require("tcp-port-used"); function getPortFromArgs(args) { let port = 9515; if (!args) { return port; } const portRegexp = /--port=(\d*)/; const portArg = args.find(function(arg) { return portRegexp.test(arg); }); if (portArg) { port = parseInt(portRegexp.exec(portArg)[1]); } return port; } process.env.PATH = path.join(__dirname, "msedgedriver") + path.delimiter + process.env.PATH; exports.path = process.platform === "win32" ? path.join(__dirname, "msedgedriver", "msedgedriver.exe") : path.join(__dirname, "msedgedriver", "msedgedriver"); exports.version = "91.0.864.53"; exports.start = function(args, returnPromise) { let command = exports.path; if (!fs.existsSync(command)) { console.log("Could not find msedgedriver in default path: ", command); console.log("Falling back to use global msedgedriver bin"); command = process.platform === "win32" ? "msedgedriver.exe" : "msedgedriver"; } const cp = require("child_process").spawn(command, args); cp.stdout.pipe(process.stdout); cp.stderr.pipe(process.stderr); exports.defaultInstance = cp; if (!returnPromise) { return cp; } const port = getPortFromArgs(args); const pollInterval = 100; const timeout = 10000; return tcpPortUsed.waitUntilUsed(port, pollInterval, timeout).then(function() { return cp; }); }; exports.stop = function() { if (exports.defaultInstance != null) { exports.defaultInstance.kill(); } };