Files
minigame/auto-test/automation.js
2023-04-07 13:33:48 +07:00

92 lines
2.1 KiB
JavaScript

const { By, until } = require("selenium-webdriver");
let { driver } = require("./app");
const { checkListForm } = require("./check_work");
const checkAuto = [
{
name: 'buttonStartPopup',
id: 'js-play-btn-popup',
action: 'click',
},
{
name: 'inputFormEmail',
id: 'js-user-email',
action: 'sendKeys',
value: 'webdriver@gmail.com',
key: 'email',
},
{
name: 'inputFormName',
id: 'js-user-name',
action: 'sendKeys',
value: 'webdrive',
key: 'name',
},
{
name: 'inputFormMobile',
id: 'js-user-mobile',
action: 'sendKeys',
value: '0832256935',
key: 'tel',
},
{
name: 'spinBtn',
id: 'js-spin-btn',
action: 'click',
},
{
name: 'playAgainAndChoseReward',
action: 'function',
value: playAgainAndChoseReward,
},
]
// Kiểm tra element có tồn tại không
async function checkEleExitedByID(id) {
try {
}
finally {
return Object.keys(await driver.findElements(By.id(id))).length
}
}
// Kiểm tra chọn giải thưởng
async function checkChoseReward() {
try {
}
finally {
const choseRewards = await driver.findElements(By.className("js-chose-reward-btn"));
for (let item of choseRewards) {
switch (Object.keys(await item.getText()).length > 0) {
case true:
await item.click();
await driver.switchTo().alert().accept();
await driver.executeScript(checkListForm, 'form-chon-giai-thuong', true)
break;
default:
break;
}
}
}
}
// Kiểm tra chơi lại, lượt chơi tối đa và chọn giải thưởng
async function playAgainAndChoseReward() {
let playerTurns = 1;
const repeatResetBtn = setInterval(async () => {
if (await checkEleExitedByID('js-reset-btn') > 0) {
let resetBtn = driver.wait(until.elementLocated(By.id("js-reset-btn")), 10000);
resetBtn.click();
playerTurns = playerTurns + 1;
} else {
clearInterval(repeatResetBtn);
await driver.executeScript(checkListForm, 'form-luot-choi-toi-da', playerTurns)
await checkChoseReward();
}
}, 15000)
}
const automation = {
checkAuto
}
module.exports = automation;