181 lines
No EOL
4.8 KiB
JavaScript
181 lines
No EOL
4.8 KiB
JavaScript
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 = ["XaosPrincess",
|
|
"Piper.Peppercorn",
|
|
"FaloniaB",
|
|
"Adam_Lorimer",
|
|
"Tomo",
|
|
"DeepRifter",
|
|
"ChrisLongVR",
|
|
"JimJ",
|
|
"cccc9999",
|
|
"nozaj@hotmail.com",
|
|
"Vishnu",
|
|
"DrFran",
|
|
"Starflower",
|
|
"fluxintime",
|
|
"alexqgb@gmail.com",
|
|
"PublicVRLab",
|
|
"Lpasca",
|
|
"troach06",
|
|
"Nescolet",
|
|
"PK",
|
|
"Snitz",
|
|
"artrevin",
|
|
"Kim_Flintoff",
|
|
"toshihoo",
|
|
"lizabender",
|
|
"iftf02",
|
|
"iftf03",
|
|
"Johnny Magic",
|
|
"wkarshat",
|
|
"Notyet",
|
|
"Ultranique",
|
|
"Yoofaloof",
|
|
"dustywizard",
|
|
"rapomax",
|
|
"madders",
|
|
"nara_malone",
|
|
"RoverVR",
|
|
"Java2606",
|
|
"guillefix",
|
|
"ThePixel8or",
|
|
"Osuvox",
|
|
"Andrew23",
|
|
"Xel-ha",
|
|
"jasonofthestorm",
|
|
"Tmoney",
|
|
"PyxJasta",
|
|
"MrsSpelling",
|
|
"marcorsotti",
|
|
"Madman"];
|
|
|
|
var username = "robin@highfidelity.io";
|
|
var pswd = "Stronghold0";
|
|
|
|
var INVALID_ERROR_TEXT = "cannot be found, user does not exist";
|
|
var IS_ALREADY_A_MEMBER_TEXT = "is already a member.";
|
|
|
|
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'))
|
|
var loginPWPromise = driver.findElement(By.id('user_password'));
|
|
|
|
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'));
|
|
var errorBox = elem.findElement(By.className("error alert alert-danger"));
|
|
return Promise.all([enterUsernamesForm, submitForm, errorBox]);
|
|
})
|
|
.then(async function ([enterUN, submitButton, errorBox]) {
|
|
for (var i = 0; i < tests.length; i++) {
|
|
await enterName(tests[i], enterUN, submitButton, errorBox);
|
|
}
|
|
})
|
|
.then(() => {
|
|
console.log("Invalid username list:");
|
|
console.log(invalid);
|
|
})
|
|
.catch(err => console.error(err));
|
|
|
|
} catch (err) {
|
|
console.log(err);
|
|
console.log("Current invalid username list:");
|
|
console.log(invalid);
|
|
}
|
|
|
|
})();
|
|
|
|
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, errorBox) {
|
|
|
|
await enterUN.sendKeys(name)
|
|
.then(async () => {
|
|
await driver.sleep(1000);
|
|
return null;
|
|
})
|
|
.then(() => {
|
|
return submitButton.click();
|
|
})
|
|
.then(async () => {
|
|
await driver.sleep(1000);
|
|
return null;
|
|
})
|
|
.then(async () => {
|
|
// document.getElementsByClassName('error alert alert-danger')[0].innerText;")
|
|
return await errorBox.isDisplayed()
|
|
})
|
|
.then(async bool => {
|
|
if (bool === true) {
|
|
var text = await errorBox.getText();
|
|
|
|
var errorText = text.toLowerCase();
|
|
var invalidText = INVALID_ERROR_TEXT.toLowerCase();
|
|
var usernameText = name.toLowerCase();
|
|
|
|
// currently only checks for invalid username
|
|
if (errorText.indexOf(invalidText) > -1 && errorText.indexOf(usernameText) === 0) {
|
|
console.log("invalid user!!");
|
|
invalid.push(name);
|
|
}
|
|
}
|
|
})
|
|
};
|
|
|
|
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"
|