Initial release.
This commit is contained in:
80
modules/driverManager.js
Normal file
80
modules/driverManager.js
Normal file
@@ -0,0 +1,80 @@
|
||||
const { Builder } = require('selenium-webdriver');
|
||||
const firefox = require('selenium-webdriver/firefox');
|
||||
const chrome = require('selenium-webdriver/chrome');
|
||||
const edge = require('selenium-webdriver/edge');
|
||||
const args = process.argv.slice(2);
|
||||
|
||||
|
||||
const userAgents = new Map([
|
||||
['desktop', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.34'],
|
||||
['mobile', 'Mozilla/5.0 (Linux; Android 10; Redmi Note 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Mobile Safari/537.36'],
|
||||
]);
|
||||
|
||||
const userAgent = userAgents.get(args.find(arg => arg.startsWith('--userAgent='))?.split('=')[1] ?? 'desktop');
|
||||
|
||||
function createDriverChrome() {
|
||||
const driver = new Builder()
|
||||
.forBrowser('chrome')
|
||||
.setChromeOptions(
|
||||
new chrome.Options()
|
||||
.windowSize({ width: 1024, height: 768 })
|
||||
.addArguments(`--user-agent=${userAgent}`),
|
||||
)
|
||||
.build();
|
||||
return driver;
|
||||
}
|
||||
|
||||
function createDriverFirefox() {
|
||||
const driver = new Builder()
|
||||
.forBrowser('firefox')
|
||||
.setFirefoxOptions(
|
||||
new firefox.Options()
|
||||
.windowSize({ width: 1024, height: 768 })
|
||||
.addArguments(`--user-agent=${userAgent}`),
|
||||
)
|
||||
.build();
|
||||
return driver;
|
||||
}
|
||||
|
||||
function createDriverEdge() {
|
||||
const driver = new Builder()
|
||||
.forBrowser('MicrosoftEdge')
|
||||
.setEdgeOptions(
|
||||
new edge.Options()
|
||||
.windowSize({ width: 1024, height: 768 })
|
||||
.addArguments(`--user-agent=${userAgent}`),
|
||||
)
|
||||
.build();
|
||||
return driver;
|
||||
}
|
||||
|
||||
function createDriver() {
|
||||
let browserType = 'chrome';
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
if (args[i].startsWith('--')) {
|
||||
if (args[i] === '--firefox') {
|
||||
browserType = 'firefox';
|
||||
}
|
||||
else if (args[i] === '--edge') {
|
||||
browserType = 'edge';
|
||||
}
|
||||
}
|
||||
}
|
||||
let driver;
|
||||
switch (browserType) {
|
||||
case 'firefox':
|
||||
driver = createDriverFirefox();
|
||||
break;
|
||||
case 'edge':
|
||||
driver = createDriverEdge();
|
||||
break;
|
||||
default:
|
||||
driver = createDriverChrome();
|
||||
}
|
||||
console.log(`Using ${browserType} browser with user agent: ${userAgent}`);
|
||||
return driver;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
createDriver,
|
||||
};
|
||||
Reference in New Issue
Block a user