package pages;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import com.aventstack.extentreports.Status;
import utilities.ReportManager;
public class LoginPage extends BasePage{
private static String userField = "//input[@id='user-name']";
private static String passField = "//input[@id='password']";
private static String loginButton = "//input[@id='login-button']";
private static String error = "//h3[normalize-space()='Epic sadface: Username is required']";
private static String error2 = "//h3[normalize-space()='Epic sadface: Username and password do not match any user in this service']";
public LoginPage(WebDriver driver){
super(driver);
}
public void verifyTitle(ReportManager report) {
String expectedTitle = "Swag Labs";
String actualTitle = getTitle();
System.out.println(actualTitle);
if(expectedTitle.equals(actualTitle)) {
report.getTest().log(Status.PASS,"Verificación correcta de título de página");
} else {
report.getTest().log(Status.FAIL,"No paso la verificación de título de página");
}
}
public void enterCredentials(String user,String password) {
write(userField,user);
write(passField,password);
}
public void clickLogin() {
clickElement(loginButton);
}
public void emptyFields() {
find(userField).clear();
find(passField).clear();
}
public void errorMessageEmptyFields() {
WebElement errorElement = find(error);
if (errorElement.isDisplayed()) {
String errorMessage = errorElement.getText();
System.out.println("Inicio de sesión fallido: " + errorMessage);
assert errorElement.isDisplayed();
} else {
System.out.println("Inicio de sesión exitoso");
}
}
public void errorMessageInvalidUserOrPass() {
WebElement errorElement = find(error2);
if (errorElement.isDisplayed()) {
String errorMessage = errorElement.getText();
System.out.println("Inicio de sesión fallido: " + errorMessage);
assert errorElement.isDisplayed();
} else {
System.out.println("Inicio de sesión exitoso");
}
}
}