const { Builder, By, Key, until, WebDriverWait } = require('selenium-webdriver'); const chrome = require('selenium-webdriver/chrome'); const firefox = require('selenium-webdriver/firefox'); var invalid = []; var tests = ["Firebird25", "alskdjfaklsdfkla", "Firebirdd25"]; var tests2 = [ '123.Basinsky.321', 'Neo.Cortex', 'jade serenity', 'Phebus', 'Evilotaku', 'humbletim', 'CheekyLoon', 'Jade_Serenity', 'jade393@gmail.com', 'GoFaster', 'bitcoinipie', 'artiffact', 'Delta', 'bsberger', 'Magg13113', 'Kev', 'Pancrazio77', 'Melacar', 'Fay', 'lunaragatekeeper', 'Hal9000', 'Miss', 'Jamesuk', 'DarnHyena', 'daemoNZ', 'Haptic Monkey', 'rforty', 'miku', 'Jasmina.Weezles', 'Marisol Delvalle', 'emelliti@gmail.com', 'Bellpheobe Ivanovic', 'roger248', 'ines248', 'Tangrenc', 'kbrad44_isamar', 'cadastro', 'Chav', 'GnarlyDeadFish', 'Calic0Jack', '1029chris', 'Adeliacampos', 'Wormhog', 'nasarogue', 'Parrel', 'TathiLuar', 'ben_', 'Kiwi', 'GrapheneOrca', 'gracejee', 'Sass', 'Mikecsalmon', 'rosanna.ewing', 'Rosie.Jane', 'Akshara', 'RavenWorks' ]; var username = "robin@highfidelity.io"; var pswd = "Stronghold0"; var INVALID_ERROR_TEXT = "cannot be found, user does not exist"; var driver = new Builder() .forBrowser('firefox') .build(); // (webdriver.Capabilities.firefox()).build(); (async function go() { try { await driver.get('https://highfidelity.com/user/groups/Face2Face'); var loginUNPromise = driver.findElement(By.id('user_login')) // login_un.sendKeys(username); var loginPWPromise = driver.findElement(By.id('user_password')); // login_pw.sendKeys(pswd); // var enter = driver.findElement(By.name('commit')); // enter.click(); Promise.all([loginUNPromise, loginPWPromise]) .then(([login_un, login_pw]) => { login_un.sendKeys(username); login_pw.sendKeys(pswd); return driver.findElement(By.name('commit')); }) .then(enterButton => { return enterButton.click(); }) .then(() => { return driver.findElement(By.className("panel panel-default members")); // By.id('new_group_membership')); }) .then(elem => { console.log(elem); var submitForm = elem.findElement(By.name('commit')); var enterUsernamesForm = elem.findElement(By.id('group_membership_user')); return Promise.all([enterUsernamesForm, submitForm]); }) .then(async function ([enterUN, submitButton]) { for (var i = 0; i < tests.length; i++) { await enterName(tests[i], enterUN, submitButton); } }) .then(() => { console.log("ROBIN AHHH", invalid); }) .catch(err => console.error(err)); } catch (err) { console.log(err); console.log(invalid); } })(); // function go1([enterUN, submitButton]) { // const start = async () => { // await asyncForEach(tests, async (name) => { // await enterName(name, enterUN, submitButton); // }) // console.log('Done') // } // start(); // } // async function asyncForEach(array, callback) { // for (let index = 0; index < array.length; index++) { // await callback(array[index], index, array) // } // } function timeout(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function sleep(fn, ...args) { await timeout(3000); return fn(...args); } async function enterName(name, enterUN, submitButton) { await enterUN.sendKeys(name) .then(async () => { await driver.sleep(1000); return null; }) .then(() => { return submitButton.click(); }) .then(async () => { await driver.sleep(2000); return null; }) .then(async () => { return await driver.findElement(By.className("error alert alert-danger")) .then( (element) => { // .then(text => { // var errorText = text.toLowerCase(); // var invalidText = INVALID_ERROR_TEXT.toLowerCase(); // var usernameText = name.toLowerCase(); // console.log("ERROR BOX INFO", text, invalidText, usernameText); // if (errorText.indexOf(invalidText) > -1 && errorText.indexOf(usernameText) === 0) { // console.log("IM IN!!"); // invalid.push(name); // } // }) // .catch((err) => { // if (err.name !== "NoSuchElementError") { // console.err("ACTUAL ERROR", err); // } else { // // not needed! // console.log("no error text"); // } // }) }, (err) => { console.log(name, err); if (err.state && err.state === 'no such element') { console.log(name); } } ) // await errorBx; // console.log(errorBx); // if (errorBx) { // console.log("I HAVE TEXT"); // await errorBx.getText() // return errorBx // .then((errorBox) => { // // found error box // console.log("ERROR BOX YOOO", errorBox); // return errorBox.getText(); // }) }) }; function checkTitle() { browser.getTitle() .then(function (title) { console.log(title); }) .catch(function (err) { console.log(err); }); } function handleFailure(err) { console.error("Error is: ", err); quitDriver(); } function quitDriver() { browser.quit(); } // https://highfidelity.com/user/groups/Face2Face // id = "group_membership_user" // group_membership_rank // submit // name=commit value "Add Member"