Добрый день. Пытаюсь освоить TestNG и вылезла следующая проблема :
- В testng.xml добавил parallel=“classes” = запускается 3 окна браузера ( у меня 3 класса с тестами) и выполняется в них параллельно все тесты.
Вопрос : Почему браузеры сами не закрываются-открываются после каждого прогонки метода в классе как это было в junit( до этого использовал) - Пытаюсь юзать в BaseTest @AfterSuite\Class\Test driver.close = браузер не закрывает. Если же использовать @AfterMethod(после каждого метода) - выполняется ПО ОДНОМУ ТЕСТУ с КАЖДОГО КЛАССА - и закрываются все 3 окна браузера. Почему так?
Я подозреваю, что возможно где-то у меня висит модификатор статика на драйвер( тогда почему в junit спокойно все закрывается\открывается)
В общем CommonActions ( тут происходит инициализация браузера)
В остальные Page - там конструктором опрокидывается ( надеюсь я правильно называю , потому что я новичок в этом)
CommonActions
package Common;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.time.Duration;
import static Common.Config.PLATFORM_BROWSER;
/**
*
* Тут происходит инифиализация браузера для вызова его в BaseTest и опрокидывания в другие классы
*
**/
public class CommonActions {
public static WebDriver CreationDriver(){
WebDriver driver = null;
switch (PLATFORM_BROWSER) {
case "Chrome":
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
driver = new ChromeDriver();
break;
case "Firefox":
System.setProperty("webdriver.gecko.driver", "src/main/resources/geckodriver.exe");
driver = new FirefoxDriver();
break;
default:
System.out.println("Please set up 'PLATFORM_BROWSER'- Chrome or Firefox ");
break;
}
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));
return driver;
}
}
И вот BaseTest
BaseTest
package Tests.Base;
import Common.CommonActions;
import Page.BasePage;
import Page.StatesAndTransition.StatesAndTransition;
import Page.Registration.ValidationRegistrationField;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.AfterMethod;
public class BaseTest {
protected WebDriver driver = CommonActions.CreationDriver();
protected BasePage basePage = new BasePage(driver);
protected ValidationRegistrationField validationRegistrationField = new ValidationRegistrationField(driver);
protected StatesAndTransition statesAndTransition = new StatesAndTransition(driver);
@AfterMethod
public void clo(){
driver.close();
}
}