Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Для каждого теста открывается новый экземпляр браузера

maven
webdriver
java
Теги: #<Tag:0x00007f7b6504aa00> #<Tag:0x00007f7b6504a7d0> #<Tag:0x00007f7b6504a690>

(Quchy John) #1

Приветствую. Я новичок, пытаюсь освоить POM. Итак: есть базовый класс, две пейджи, и класс с тестами.
В базовом классе в BeforeClass я инициализирую driver:

@BeforeClass
public static void beforeClass() {
    driver = new FirefoxDriver();
    baseUrl = "tratata";
    driver.get(baseUrl);
}

Классы пейджей у меня extends BaseClass. Есть также один класс с тестами. В нём есть два теста. Методы первого теста реализованы на пейдже 1, а методы второго теста на пейдже 2. Через maven запускаю класс с тестами и каждый из двух тестов почему то открывается в новом браузере. Как реализовать чтобы второй тест отрабатывал бы в том же браузере, что и первый тест? Спасибо.


(Alex F) #2

Создай статический класс с методами открытия сессии и его закрытия и наследуйся из него .


(Yaroslav Pernerovskyy) #3

Попробуй поменять @BeforeClass на @BeforeSuit или @BeforeTest (если это пример из TestNG)
Потому что @BeforeClass по-чесному отрабатывает перед каждым новым классом, что у тебя и происходит.

Делать статические классы для сессии, категорически не рекомендую, отгребешь потом при паралельных запусках.

И да, это не относится ни к POM, ни к Maven вообще.


(Farof Well) #4

Использовать статик действительно не вариант, если в будущем собираешься распараллеливать тесты, если предыдущий совет не поможет то сделай синглтон класс возвращающий инстанс драйвера, ну и driver.quit только AfterSuite вызывай