diff --git a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/jupiter/extension/BrowserExtension.java b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/jupiter/extension/BrowserExtension.java index af20fdf49..b95b5f66c 100644 --- a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/jupiter/extension/BrowserExtension.java +++ b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/jupiter/extension/BrowserExtension.java @@ -1,6 +1,7 @@ package guru.qa.niffler.jupiter.extension; import com.codeborne.selenide.Selenide; +import com.codeborne.selenide.SelenideDriver; import com.codeborne.selenide.WebDriverRunner; import com.codeborne.selenide.logevents.SelenideLogger; import io.qameta.allure.Allure; @@ -14,6 +15,8 @@ import org.openqa.selenium.TakesScreenshot; import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.List; public class BrowserExtension implements BeforeEachCallback, @@ -21,10 +24,18 @@ public class BrowserExtension implements TestExecutionExceptionHandler, LifecycleMethodExecutionExceptionHandler { + private final List drivers = new ArrayList<>(); + + public List drivers() { + return drivers; + } + @Override public void afterEach(ExtensionContext context) throws Exception { - if (WebDriverRunner.hasWebDriverStarted()) { - Selenide.closeWebDriver(); + for (SelenideDriver driver : drivers) { + if (driver.hasWebDriverStarted()) { + driver.close(); + } } } @@ -54,14 +65,16 @@ public void handleAfterEachMethodExecutionException(ExtensionContext context, Th throw throwable; } - private static void doScreenshot() { - if (WebDriverRunner.hasWebDriverStarted()) { - Allure.addAttachment( - "Screen on fail", - new ByteArrayInputStream( - ((TakesScreenshot) WebDriverRunner.getWebDriver()).getScreenshotAs(OutputType.BYTES) - ) - ); + private void doScreenshot() { + for (SelenideDriver driver : drivers) { + if (driver.hasWebDriverStarted()) { + Allure.addAttachment( + "Screen on fail for browser: " + driver.getSessionId(), + new ByteArrayInputStream( + ((TakesScreenshot) driver.getWebDriver()).getScreenshotAs(OutputType.BYTES) + ) + ); + } } } } diff --git a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/page/BasePage.java b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/page/BasePage.java index 9c8e598b1..4718e6c0d 100644 --- a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/page/BasePage.java +++ b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/page/BasePage.java @@ -3,6 +3,8 @@ import com.codeborne.selenide.CollectionCondition; import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.Selenide; +import com.codeborne.selenide.SelenideDriver; import com.codeborne.selenide.SelenideElement; import guru.qa.niffler.config.Config; import io.qameta.allure.Step; @@ -10,16 +12,24 @@ import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; @ParametersAreNonnullByDefault public abstract class BasePage> { protected static final Config CFG = Config.getInstance(); - private final SelenideElement alert = $(".MuiSnackbar-root"); - private final ElementsCollection formErrors = $$("p.Mui-error, .input__helper-text"); + private final SelenideElement alert; + private final ElementsCollection formErrors; + + protected BasePage(SelenideDriver driver) { + this.alert = driver.$(".MuiSnackbar-root"); + this.formErrors = driver.$$("p.Mui-error, .input__helper-text"); + } + + public BasePage() { + this.alert = Selenide.$(".MuiSnackbar-root"); + this.formErrors = Selenide.$$("p.Mui-error, .input__helper-text"); + } public abstract T checkThatPageLoaded(); diff --git a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/page/LoginPage.java b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/page/LoginPage.java index acd8ef53c..f07994cd4 100644 --- a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/page/LoginPage.java +++ b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/page/LoginPage.java @@ -1,5 +1,7 @@ package guru.qa.niffler.page; +import com.codeborne.selenide.Selenide; +import com.codeborne.selenide.SelenideDriver; import com.codeborne.selenide.SelenideElement; import io.qameta.allure.Step; @@ -7,17 +9,33 @@ import static com.codeborne.selenide.Condition.text; import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; public class LoginPage extends BasePage { public static final String URL = CFG.authUrl() + "login"; - private final SelenideElement usernameInput = $("input[name='username']"); - private final SelenideElement passwordInput = $("input[name='password']"); - private final SelenideElement submitButton = $("button[type='submit']"); - private final SelenideElement registerButton = $("a[href='/register']"); - private final SelenideElement errorContainer = $(".form__error"); + private final SelenideElement usernameInput; + private final SelenideElement passwordInput; + private final SelenideElement submitButton; + private final SelenideElement registerButton; + private final SelenideElement errorContainer; + + public LoginPage(SelenideDriver driver) { + super(driver); + this.usernameInput = driver.$("input[name='username']"); + this.passwordInput = driver.$("input[name='password']"); + this.submitButton = driver.$("button[type='submit']"); + this.registerButton = driver.$("a[href='/register']"); + this.errorContainer = driver.$(".form__error"); + } + + public LoginPage() { + this.usernameInput = Selenide.$("input[name='username']"); + this.passwordInput = Selenide.$("input[name='password']"); + this.submitButton = Selenide.$("button[type='submit']"); + this.registerButton = Selenide.$("a[href='/register']"); + this.errorContainer = Selenide.$(".form__error"); + } @Nonnull public RegisterPage doRegister() { diff --git a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/FriendsWebTest.java b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/FriendsWebTest.java index 52d744660..2f95e4139 100644 --- a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/FriendsWebTest.java +++ b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/FriendsWebTest.java @@ -1,6 +1,6 @@ package guru.qa.niffler.test.web; -import com.codeborne.selenide.Selenide; +import com.codeborne.selenide.SelenideDriver; import guru.qa.niffler.jupiter.annotation.User; import guru.qa.niffler.jupiter.annotation.meta.WebTest; import guru.qa.niffler.model.rest.UserJson; @@ -8,19 +8,21 @@ import guru.qa.niffler.page.LoginPage; import guru.qa.niffler.page.MainPage; import guru.qa.niffler.page.PeoplePage; +import guru.qa.niffler.utils.SelenideUtils; import org.junit.jupiter.api.Test; -import static com.codeborne.selenide.Selenide.open; @WebTest public class FriendsWebTest { + private final SelenideDriver driver = new SelenideDriver(SelenideUtils.chromeConfig); + @User(friends = 1) @Test void friendShouldBePresentInFriendsTable(UserJson user) { final String friendUsername = user.testData().friendsUsernames()[0]; - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -31,7 +33,7 @@ void friendShouldBePresentInFriendsTable(UserJson user) { @User @Test void friendsTableShouldBeEmptyForNewUser(UserJson user) { - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -44,7 +46,7 @@ void friendsTableShouldBeEmptyForNewUser(UserJson user) { void incomeInvitationBePresentInFriendsTable(UserJson user) { final String incomeInvitationUsername = user.testData().incomeInvitationsUsernames()[0]; - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -57,7 +59,7 @@ void incomeInvitationBePresentInFriendsTable(UserJson user) { void outcomeInvitationBePresentInAllPeoplesTable(UserJson user) { final String outcomeInvitationUsername = user.testData().outcomeInvitationsUsernames()[0]; - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -70,7 +72,7 @@ void outcomeInvitationBePresentInAllPeoplesTable(UserJson user) { void shouldRemoveFriend(UserJson user) { final String userToRemove = user.testData().friendsUsernames()[0]; - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -84,7 +86,7 @@ void shouldRemoveFriend(UserJson user) { void shouldAcceptInvitation(UserJson user) { final String userToAccept = user.testData().incomeInvitationsUsernames()[0]; - FriendsPage friendsPage = open(LoginPage.URL, LoginPage.class) + FriendsPage friendsPage = driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -92,7 +94,7 @@ void shouldAcceptInvitation(UserJson user) { .checkExistingInvitationsCount(1) .acceptFriendInvitationFromUser(userToAccept); - Selenide.refresh(); + driver.refresh(); friendsPage.checkExistingInvitationsCount(0) .checkExistingFriendsCount(1) @@ -104,7 +106,7 @@ void shouldAcceptInvitation(UserJson user) { void shouldDeclineInvitation(UserJson user) { final String userToDecline = user.testData().incomeInvitationsUsernames()[0]; - FriendsPage friendsPage = Selenide.open(LoginPage.URL, LoginPage.class) + FriendsPage friendsPage = driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -112,12 +114,12 @@ void shouldDeclineInvitation(UserJson user) { .checkExistingInvitationsCount(1) .declineFriendInvitationFromUser(userToDecline); - Selenide.refresh(); + driver.refresh(); friendsPage.checkExistingInvitationsCount(0) .checkExistingFriendsCount(0); - open(PeoplePage.URL, PeoplePage.class) + driver.open(PeoplePage.URL, PeoplePage.class) .checkExistingUser(userToDecline); } } diff --git a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/LoginTest.java b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/LoginTest.java index 774f0793a..2fa41ec0a 100644 --- a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/LoginTest.java +++ b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/LoginTest.java @@ -1,22 +1,35 @@ package guru.qa.niffler.test.web; -import com.codeborne.selenide.Selenide; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.SelenideConfig; +import com.codeborne.selenide.SelenideDriver; import guru.qa.niffler.jupiter.annotation.User; import guru.qa.niffler.jupiter.annotation.meta.WebTest; +import guru.qa.niffler.jupiter.extension.BrowserExtension; import guru.qa.niffler.model.rest.UserJson; import guru.qa.niffler.page.LoginPage; import guru.qa.niffler.page.MainPage; +import guru.qa.niffler.utils.SelenideUtils; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +import java.util.List; import static guru.qa.niffler.utils.RandomDataUtils.randomUsername; -@WebTest public class LoginTest { + @RegisterExtension + private final BrowserExtension browserExtension = new BrowserExtension(); + private final SelenideDriver driver = new SelenideDriver(SelenideUtils.chromeConfig); + @User @Test void mainPageShouldBeDisplayedAfterSuccessLogin(UserJson user) { - Selenide.open(LoginPage.URL, LoginPage.class) + browserExtension.drivers().add(driver); + + driver.open(LoginPage.URL); + new LoginPage(driver) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .checkThatPageLoaded(); @@ -24,9 +37,17 @@ void mainPageShouldBeDisplayedAfterSuccessLogin(UserJson user) { @Test void userShouldStayOnLoginPageAfterLoginWithBadCredentials() { - Selenide.open(LoginPage.URL, LoginPage.class) + SelenideDriver firefox = new SelenideDriver(SelenideUtils.firefoxConfig); + + browserExtension.drivers().addAll(List.of(driver, firefox)); + + driver.open(LoginPage.URL); + firefox.open(LoginPage.URL); + new LoginPage(driver) .fillLoginPage(randomUsername(), "BAD") - .submit(new LoginPage()) - .checkError("Bad credentials"); + .submit(new LoginPage(driver)) + .checkError("Bad credentials!"); + + firefox.$(".logo-section__text").should(Condition.text("Niffler!")); } } diff --git a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/ProfileTest.java b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/ProfileTest.java index bfd1cba51..78bc57fa6 100644 --- a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/ProfileTest.java +++ b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/ProfileTest.java @@ -1,6 +1,6 @@ package guru.qa.niffler.test.web; -import com.codeborne.selenide.Selenide; +import com.codeborne.selenide.SelenideDriver; import guru.qa.niffler.jupiter.annotation.Category; import guru.qa.niffler.jupiter.annotation.User; import guru.qa.niffler.jupiter.annotation.meta.WebTest; @@ -8,6 +8,7 @@ import guru.qa.niffler.page.LoginPage; import guru.qa.niffler.page.MainPage; import guru.qa.niffler.page.ProfilePage; +import guru.qa.niffler.utils.SelenideUtils; import org.junit.jupiter.api.Test; import static guru.qa.niffler.utils.RandomDataUtils.randomCategoryName; @@ -16,6 +17,8 @@ @WebTest public class ProfileTest { + private final SelenideDriver driver = new SelenideDriver(SelenideUtils.chromeConfig); + @User( categories = @Category( archived = true @@ -25,12 +28,12 @@ public class ProfileTest { void archivedCategoryShouldPresentInCategoriesList(UserJson user) { final String categoryName = user.testData().categoryDescriptions()[0]; - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .checkThatPageLoaded(); - Selenide.open(ProfilePage.URL, ProfilePage.class) + driver.open(ProfilePage.URL, ProfilePage.class) .checkArchivedCategoryExists(categoryName); } @@ -43,12 +46,12 @@ void archivedCategoryShouldPresentInCategoriesList(UserJson user) { void activeCategoryShouldPresentInCategoriesList(UserJson user) { final String categoryName = user.testData().categoryDescriptions()[0]; - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .checkThatPageLoaded(); - Selenide.open(ProfilePage.URL, ProfilePage.class) + driver.open(ProfilePage.URL, ProfilePage.class) .checkCategoryExists(categoryName); } @@ -57,7 +60,7 @@ void activeCategoryShouldPresentInCategoriesList(UserJson user) { void shouldUpdateProfileWithAllFieldsSet(UserJson user) { final String newName = randomName(); - ProfilePage profilePage = Selenide.open(LoginPage.URL, LoginPage.class) + ProfilePage profilePage = driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .checkThatPageLoaded() @@ -68,7 +71,7 @@ void shouldUpdateProfileWithAllFieldsSet(UserJson user) { .submitProfile() .checkAlertMessage("Profile successfully updated"); - Selenide.refresh(); + driver.refresh(); profilePage.checkName(newName) .checkPhotoExist(); @@ -79,7 +82,7 @@ void shouldUpdateProfileWithAllFieldsSet(UserJson user) { void shouldUpdateProfileWithOnlyRequiredFields(UserJson user) { final String newName = randomName(); - ProfilePage profilePage = Selenide.open(LoginPage.URL, LoginPage.class) + ProfilePage profilePage = driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .checkThatPageLoaded() @@ -89,7 +92,7 @@ void shouldUpdateProfileWithOnlyRequiredFields(UserJson user) { .submitProfile() .checkAlertMessage("Profile successfully updated"); - Selenide.refresh(); + driver.refresh(); profilePage.checkName(newName); } @@ -99,7 +102,7 @@ void shouldUpdateProfileWithOnlyRequiredFields(UserJson user) { void shouldAddNewCategory(UserJson user) { String newCategory = randomCategoryName(); - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .checkThatPageLoaded() @@ -124,7 +127,7 @@ void shouldAddNewCategory(UserJson user) { ) @Test void shouldForbidAddingMoreThat8Categories(UserJson user) { - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .checkThatPageLoaded() diff --git a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/RegistrationTest.java b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/RegistrationTest.java index 5119c9e3e..a56c77f59 100644 --- a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/RegistrationTest.java +++ b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/RegistrationTest.java @@ -1,9 +1,10 @@ package guru.qa.niffler.test.web; -import com.codeborne.selenide.Selenide; +import com.codeborne.selenide.SelenideDriver; import guru.qa.niffler.jupiter.annotation.meta.WebTest; import guru.qa.niffler.page.LoginPage; import guru.qa.niffler.page.MainPage; +import guru.qa.niffler.utils.SelenideUtils; import org.junit.jupiter.api.Test; import static guru.qa.niffler.utils.RandomDataUtils.randomUsername; @@ -11,11 +12,13 @@ @WebTest public class RegistrationTest { + private final SelenideDriver driver = new SelenideDriver(SelenideUtils.chromeConfig); + @Test void shouldRegisterNewUser() { String newUsername = randomUsername(); String password = "12345"; - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .doRegister() .fillRegisterPage(newUsername, password, password) .successSubmit() @@ -29,7 +32,7 @@ void shouldNotRegisterUserWithExistingUsername() { String existingUsername = "duck"; String password = "12345"; - LoginPage loginPage = Selenide.open(LoginPage.URL, LoginPage.class); + LoginPage loginPage = driver.open(LoginPage.URL, LoginPage.class); loginPage.doRegister() .fillRegisterPage(existingUsername, password, password) .errorSubmit(); @@ -41,7 +44,7 @@ void shouldShowErrorIfPasswordAndConfirmPasswordAreNotEqual() { String newUsername = randomUsername(); String password = "12345"; - LoginPage loginPage = Selenide.open(LoginPage.URL, LoginPage.class); + LoginPage loginPage = driver.open(LoginPage.URL, LoginPage.class); loginPage.doRegister() .fillRegisterPage(newUsername, password, "bad password submit") .errorSubmit(); diff --git a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/SpendingWebTest.java b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/SpendingWebTest.java index c84308d5f..63492710b 100644 --- a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/SpendingWebTest.java +++ b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/test/web/SpendingWebTest.java @@ -1,6 +1,6 @@ package guru.qa.niffler.test.web; -import com.codeborne.selenide.Selenide; +import com.codeborne.selenide.SelenideDriver; import guru.qa.niffler.condition.Color; import guru.qa.niffler.jupiter.annotation.ScreenShotTest; import guru.qa.niffler.jupiter.annotation.Spending; @@ -12,6 +12,7 @@ import guru.qa.niffler.page.component.StatComponent; import guru.qa.niffler.utils.RandomDataUtils; import guru.qa.niffler.utils.ScreenDiffResult; +import guru.qa.niffler.utils.SelenideUtils; import org.junit.jupiter.api.Test; import java.awt.image.BufferedImage; @@ -23,6 +24,8 @@ @WebTest public class SpendingWebTest { + private final SelenideDriver driver = new SelenideDriver(SelenideUtils.chromeConfig); + @User( spendings = @Spending( category = "Обучение", @@ -34,7 +37,7 @@ public class SpendingWebTest { void categoryDescriptionShouldBeChangedFromTable(UserJson user) { final String newDescription = "Обучение Niffler Next Generation"; - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getSpendingTable() @@ -54,7 +57,7 @@ void shouldAddNewSpending(UserJson user) { Date currentDate = new Date(); String description = RandomDataUtils.randomSentence(3); - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -73,7 +76,7 @@ void shouldAddNewSpending(UserJson user) { @User @Test void shouldNotAddSpendingWithEmptyCategory(UserJson user) { - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -87,7 +90,7 @@ void shouldNotAddSpendingWithEmptyCategory(UserJson user) { @User @Test void shouldNotAddSpendingWithEmptyAmount(UserJson user) { - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getHeader() @@ -107,7 +110,7 @@ void shouldNotAddSpendingWithEmptyAmount(UserJson user) { ) @Test void deleteSpendingTest(UserJson user) { - Selenide.open(LoginPage.URL, LoginPage.class) + driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getSpendingTable() @@ -124,7 +127,7 @@ void deleteSpendingTest(UserJson user) { ) @ScreenShotTest("img/expected-stat.png") void checkStatComponentTest(UserJson user, BufferedImage expected) throws IOException, InterruptedException { - StatComponent statComponent = Selenide.open(LoginPage.URL, LoginPage.class) + StatComponent statComponent = driver.open(LoginPage.URL, LoginPage.class) .fillLoginPage(user.username(), user.testData().password()) .submit(new MainPage()) .getStatComponent(); diff --git a/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/utils/SelenideUtils.java b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/utils/SelenideUtils.java new file mode 100644 index 000000000..9e45018b1 --- /dev/null +++ b/niffler-e-2-e-tests/src/test/java/guru/qa/niffler/utils/SelenideUtils.java @@ -0,0 +1,17 @@ +package guru.qa.niffler.utils; + +import com.codeborne.selenide.SelenideConfig; + +public class SelenideUtils { + + public static final SelenideConfig chromeConfig = new SelenideConfig() + .browser("chrome") + .pageLoadStrategy("eager") + .timeout(5000L); + + public static final SelenideConfig firefoxConfig = new SelenideConfig() + .browser("firefox") + .pageLoadStrategy("eager") + .timeout(5000L); + +}