Добрый день коллеги! Я не так недавно начал разбираться во фреймверке Thucudides. На дынный момент я использую такую связку Selenium+Java+IntellijIdea+JUnit+Maven+Thucydides. Так вот я написал простейший тест по авторизации. Тест работает, однако без проверки, как мне поставить проверку если (поле логин пустое) и при прохождении тест он валится, а в отчете показано где именно.Я в принципе понимаю что надо использовать конструкцию getText() из PageObject. Вот мой тест
1.AuthPage
import net.thucydides.core.pages.PageObject;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class Auth extends PageObject {
private static final Integer CATALOG_WAIT_FOR_TIMEOUT = 20000;
@FindBy(className = "ajaxPage")
private WebElement addEntry;
@FindBy(id = "input-email")
private WebElement addLogin;
@FindBy(id = "input-password")
private WebElement addPass;
@FindBy(xpath = "//*[@id='ajax2login']/input")
private WebElement addEnter;
@FindBy(className = "authorization")
private WebElement addAuth;
public Auth(WebDriver driver) {
super(driver, CATALOG_WAIT_FOR_TIMEOUT);
}
public void setClickEntry() {
clickOn(addEntry);
}
public void setLoginIn() {enter("fazen7@mail.ru").into(addLogin);}
public void setPassIn() {enter("12345").into(addPass);}
public void setEnterIn() {clickOn(addEnter);}
public void setIn() {}
}
2.Steps
package steps;
import AuthPage.Auth;
import net.thucydides.core.annotations.Step;
import net.thucydides.core.pages.Pages;
import net.thucydides.core.steps.ScenarioSteps;
public class AuthSteps extends ScenarioSteps {
Auth authPage;
public AuthSteps(Pages pages) {
super(pages);
}
@Step ("Запустил браузер")
public void start_browser() {
Auth loginPage = getPages().get(Auth.class);
loginPage.open();
}
@Step ("Нажал кнопку Войти")
public void addEntry() {authPage.setClickEntry();
}
@Step ("Ввел логин")
public void addLogin() {authPage.setLoginIn();
}
@Step ("Ввел пароль")
public void addPass() {authPage.setPassIn();
}
@Step ("Кликнул Вход" )
public void addEnter() {authPage.setEnterIn();
}
@Step ("Добро пожаловать пользователь")
public void addAuth(){authPage.setIn();
}
@Step ()
public String getMsg(){
return authPage.getText();
}
3.BeforeClass
package tests;
import net.thucydides.core.annotations.Managed;
import net.thucydides.core.annotations.Steps;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.openqa.selenium.WebDriver;
import steps.AuthSteps;
import java.io.IOException;
import static org.hamcrest.core.Is.is;
public class BeforeClass {
@Managed(uniqueSession = true, driver = "chrome")
public WebDriver driver;
@Steps
public AuthSteps compare;
@Steps
public AuthSteps login;
@Steps
public AuthSteps pass;
@Steps
public AuthSteps enter;
@Steps
public AuthSteps in;
@Before
public void myTest() throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\Test\\FrameOrderThucydides\\src\\main\\resourse\\chromedriver.exe");
compare.start_browser();
driver.manage().window().maximize();
}
@After
public void close() throws IOException {
driver.close();
}
public void assertText(String login) {
if (login == null){
Assert.assertThat(login.getText(),is("Тест упал поле не заполнено"));
}
}
4.Test
import net.thucydides.core.annotations.ManagedPages;
import net.thucydides.core.annotations.Story;
import net.thucydides.core.annotations.WithTag;
import net.thucydides.core.pages.Pages;
import net.thucydides.junit.annotations.Concurrent;
import net.thucydides.junit.runners.ThucydidesRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import utils.Application;
@Story(Application.RozCompare.Compare.class)
@RunWith(ThucydidesRunner.class)
@Concurrent(threads = "1")
public class VideoCompareTest extends BeforeClass {
@ManagedPages(defaultUrl = "http://igrad.test-lemon.com")
public Pages pages;
@WithTag("Авторизация")
@Test
public void compareTwoCards() throws InterruptedException {
compare.addEntry();
login.addLogin();
assertText();
pass.addPass();
enter.addEnter();
in.addAuth();
Thread.sleep(3000);
}
Подскажите пожалуйста , как правильно делать такие проверки, и стоит ли вообще в фусидиде делать проверки, если в случае какой-либо ошибки, фрейм в отчете покажет в чем проблема. Заранее спасибо!