Fixed and improved modules, adding first part support for AWS accounts

This commit is contained in:
2023-05-19 23:03:11 +02:00
parent 331b110eb8
commit 093836c319
7 changed files with 470 additions and 46 deletions

78
modules/awsHandler.js Normal file
View File

@@ -0,0 +1,78 @@
// 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 };