Запуск тестов на разных браузерах с помощью JUnit

selenium
java
junit
Теги: #<Tag:0x00007fedb9b07d50> #<Tag:0x00007fedb9b07b70> #<Tag:0x00007fedb9b078c8>

(Volodymyr Valigura) #1

Не смог найти информации.
Скорее всего плохо искал, но все же.

Есть есть статический класс который инициализирует драйвер, для этого необходимо передать имя браузера:

public class Driver {
private static WebDriver driver;

public static WebDriver initDriver(BrowserType browserType){
    switch (browserType){
        case CHROME:
            driver = initChromeDriver();
            break;
        case FIREFOX:
            driver = initFireFoxDriver();
            break;
        default: throw new IllegalArgumentException("Cannot initialize such webdriver.");
    }

    return driver;
}

private static WebDriver initFireFoxDriver() {
    System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir") + "\\src\\test\\resources\\geckodriver.exe");
    WebDriver firefoxDriver = new FirefoxDriver();
    firefoxDriver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
    firefoxDriver.manage().window().maximize();
    return firefoxDriver;

}

private static WebDriver initChromeDriver() {
    System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "\\src\\test\\resources\\chromedriver.exe");
    WebDriver chromeDriver = new ChromeDriver();
    chromeDriver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
    chromeDriver.manage().window().maximize();
    return chromeDriver;
}

}

Драйвер создается в @Before методе

@Before
public void setUpDriver(){
    driver = Driver.initDriver(BrowserType.CHROME);
}

Тесты запускаю через сют. И никак не могу разобраться как передать в метод setUpDriver параметр для запуска тестов на нескольких браузерах в JUnit. Так чтобы JUnit сам сначала прогнал весь сют через первый указаний браузер, а потом через второй.

Для примера как это делается в TestNG:

<test name="Test_chrome">
    <parameter name="browser" value="Chrome"></parameter>
    <classes>
        <class name="HomeWorkLesson5"/>
    </classes>
</test>

<test name="Test_FireFox">
    <parameter name="browser" value="FireFox"></parameter>
    <classes>
        <class name="HomeWorkLesson5"/>
    </classes>
</test>

Есть что-то похожее в JUnit?


(Volodymyr Valigura) #2

Отвечу сам себе, в JUnit, то что я хочу - нет.
Есть возможность добавить параметры на уровне класса( @Parameters ), и сразу же в классе указать браузеры, что не очень. JUnit в таком случае даже для одного теста стартует проверки для всех параметров.
Буду переходить на TestNG, там мега гибкий в этом плане dataProvider.


(Сергей Кузьмин) #3

посмотрите на

и вот IIRC я пробовал передавать браузер тоже но в HEAD версии