2024-10-07 16:33:44 +05:45
|
|
|
const config = require(`../config`);
|
|
|
|
|
2024-08-31 15:49:59 +05:45
|
|
|
class LoginPage {
|
|
|
|
constructor() {
|
|
|
|
// url
|
2024-10-07 16:33:44 +05:45
|
|
|
this.homeUrl = config.baseUrl;
|
|
|
|
this.loginUrl = `${this.homeUrl}login`;
|
2024-08-31 15:49:59 +05:45
|
|
|
|
2024-10-07 16:33:44 +05:45
|
|
|
// selectors
|
2024-08-31 15:49:59 +05:45
|
|
|
this.loginButtonSelector = `//i[@class="right arrow icon"]`;
|
|
|
|
this.usernameSelector = `//input[@name='emailOrUsername']`;
|
|
|
|
this.passwordSelector = `//input[@name='password']`;
|
|
|
|
this.errorMessageSelector = `//div[@class='ui error visible message']`;
|
|
|
|
this.userActionSelector = `//span[@class="User_initials__9Wp90"]`;
|
|
|
|
this.logOutSelector = `//a[@class="item UserStep_menuItem__5pvtT"][contains(text(),'Log Out')]`;
|
|
|
|
}
|
|
|
|
|
|
|
|
async goToLoginUrl() {
|
|
|
|
await page.goto(this.loginUrl);
|
|
|
|
}
|
|
|
|
|
|
|
|
async logOut() {
|
|
|
|
await page.click(this.userActionSelector);
|
|
|
|
await page.click(this.logOutSelector);
|
|
|
|
}
|
|
|
|
|
|
|
|
async login(username, password) {
|
|
|
|
await page.fill(this.usernameSelector, username);
|
|
|
|
await page.fill(this.passwordSelector, password);
|
|
|
|
await page.click(this.loginButtonSelector);
|
|
|
|
}
|
|
|
|
|
|
|
|
async getErrorMessage() {
|
|
|
|
return page.innerText(this.errorMessageSelector);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = LoginPage;
|