Files
mcr-account-creator-bot/modules/awsHandler.js

78 lines
3.2 KiB
JavaScript

// const fs = require('fs');
// const path = require('path');
const { By, Key, until } = require('selenium-webdriver');
const { createIdentity } = require('./identityHandler');
const { getCodeFromEmail } = require('./codeHandler');
const { clickTime, urlTime, timeoutLoading } = require('./speedHandler').getSpeed();
async function createAWSAccount(driver) {
try {
const identity = await createIdentity();
console.log(identity);
await driver.get('https://aws.amazon.com/');
await driver.sleep(urlTime);
await driver.wait(until.titleContains('Cloud Computing'), timeoutLoading);
await driver.findElement(By.css('button[data-id="awsccc-cb-btn-accept"]')).click();
await driver.sleep(clickTime);
await driver.findElement(By.css('a.lb-btn-p-primary[href="https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_ct&src=header_signup"]')).click();
await driver.sleep(urlTime);
await driver.wait(until.titleContains('AWS Console'), timeoutLoading);
await driver.findElement(By.id('awsui-input-0')).sendKeys(identity.email);
await driver.findElement(By.id('awsui-input-1')).sendKeys(identity.first_name + '.' + identity.last_name);
await driver.findElement(By.id('awsui-input-1')).sendKeys(Key.RETURN);
await driver.sleep(clickTime);
const code = await getCodeFromEmail();
await driver.findElement(By.id('awsui-input-2')).sendKeys(`${code}`);
await driver.findElement(By.id('awsui-input-2')).sendKeys(Key.RETURN);
await driver.sleep(urlTime);
await driver.findElement(By.id('awsui-input-3')).sendKeys(identity.password);
await driver.findElement(By.id('awsui-input-4')).sendKeys(identity.password);
await driver.findElement(By.id('awsui-input-4')).sendKeys(Key.RETURN);
await driver.sleep(urlTime);
await driver.findElement(By.id('awsui-radio-button-2')).click();
await driver.findElement(By.id('awsui-input-5')).sendKeys(identity.first_name + ' ' + identity.last_name);
await driver.findElement(By.id('awsui-select-1-textbox')).click();
await driver.findElement(By.id('awsui-select-1-dropdown-option-74')).click();
// add a dynamic way to set the phone number
await driver.findElement(By.id('awsui-input-7')).sendKeys('0666666666');
await driver.findElement(By.id('awsui-select-2')).click();
await driver.findElement(By.id('awsui-select-2-dropdown-option-74')).click();
await driver.findElement(By.id('awsui-input-9')).sendKeys(identity.address);
await driver.findElement(By.id('awsui-input-11')).sendKeys('Paris');
await driver.findElement(By.id('awsui-input-12')).sendKeys('Ile-de-France');
await driver.findElement(By.id('awsui-input-13')).sendKeys(Math.floor(Math.random() * (75017 - 75001 + 1)) + 75001);
await driver.findElement(By.id('awsui-checkbox-0')).click();
await driver.findElement(By.id('awsui-input-13')).sendKeys(Key.RETURN);
await driver.sleep(urlTime);
await driver.findElement(By.id('awsui-input-15')).sendKeys(identity.first_name + ' ' + identity.last_name);
await driver.findElement(By.id('awsui-select-4')).click();
await driver.findElement(By.id('awsui-select-4-dropdown-option-5')).click();
// wait until user finished card verification
}
finally {
// await driver.quit();
}
return;
}
module.exports = { createAWSAccount };