Я пытаюсь запустить Selenium Web driver с Amazon EC2 , но я потерян.Я новичок в Linux, и я не уверен, как установить Google Chrome или позвонить ему после развертывания приложения в Amazon EC2.
Я пытаюсь автоматизировать вход в социальные сети , используя Selenium Web driver.Я использую Node на Backend.Я не хочу запускать хром без головы.
Код работает в Windows, работающей локально.
Вот пример кода для автоматического входа в MySpace с использованием веб-драйвера Selenium в узле:
require('chromedriver');
const request = require('request');
const firefox = require('selenium-webdriver/firefox');
const chrome = require('selenium-webdriver/chrome');
const { Builder, By, Key, until } = require('selenium-webdriver');
const options = new chrome.Options();
//options.setChromeBinaryPath(process.env.GOOGLE_CHROME_PATH);
options.addArguments("--incognito");
options.addArguments('--disable-gpu');
options.addArguments('disable-infobars');
options.addArguments("--disable-extensions");
// delay function
const timeout = ms => new Promise(res => setTimeout(res, ms));
module.exports.myspaceSignin = async (req, res) => {
let driver = new Builder()
.forBrowser('chrome')
.setChromeOptions(options)
.build();
try {
let url = 'https://www.myspace.com/login';
let currentUrl;
await driver.manage().deleteAllCookies();
await driver.get(url);
await driver.getCurrentUrl().then(result => currentUrl = result);
await driver.getTitle().then(result => console.log(result));
await driver.findElement(By.id("login.email")).sendKeys("my_email@email.com");
await driver.findElement(By.id("login.password")).sendKeys("my_p@ssw0rd");
await driver.findElement(By.xpath("//button[contains(text(), 'Sign In')]")).click();
await timeout(3000);
// IF THERE'S INVALID CREDENTIALS WHILE SIGNING IN
let error = await driver.findElements(By.className("tip-inner"));
if(error.length > 0){
let errorMessage = [];
for(let i = 0; i < error.length; i++)
errorMessage.push(await error[i].getText());
driver.quit();
if(errorMessage.filter(x => x).length > 0)
return res.status(500).json({
success : false,
message : "There has been an error while signing up with myspace",
error : errorMessage.filter(x => x)
});
}
driver.quit();
res.status(200).json({
success: true,
message: "You successfully signin to your myspace account"
});
} catch (err) {
console.log(err);
driver.quit();
return res.status(500).json({
error_message:'Exception occurred while processing, details are: ',
error: err
});
}
}
Мне просто нужно установить Google Chrome, но я не знаю, какую версию я могу использовать для Amazon EC2 или как правильно установить ее.Я добавил драйвер Chrome в мои модули узлов.