// 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 };