Запустите Webdriver отдельно в Selenium Cucumber-JVM - PullRequest
0 голосов
/ 25 октября 2018

Я использую огурец и селен.

У меня есть три файла .feature:

1) auth.feature

2) registration.feature

3) userInformation.feature

У меня есть отдельные классы определений шагов для них

1) authSteps.class

2) registrationSteps.class

3) userInformationSteps.class

INкаждый класс, в котором я создаю веб-драйвер, подобный этому

WebDriver driver = new WebDriver(ChromeDriver);

Когда я запускаю тесты, все драйверы запускаются вместе, даже если я пометил тестовый случай и только запускаю 1 случай, веб-драйверы также запускаются.@before не работает.

Я хочу только запустить веб-драйвер функции.Все, если я тестирую все функции, я хочу запускать веб-драйверы линейным способом.

1 Ответ

0 голосов
/ 25 октября 2018

1.Создайте один класс AbstractHook в пакете TestScript

public class AbstractHook {
protected static WebDriver driver;

    protected WebDriver getdriver() {
        if (driver == null) {
        System.setProperty("webdriver.gecko.driver","geckodriver.exe");
            driver = new FirefoxDriver();

        } else if (driver == null) {

            System.setProperty("webdriver.chrome.driver",
                "chromedriver.exe");
            driver = new ChromeDriver();

        } 
        return driver;
    }

2.Класс класса

public class Hook extends AbstractHook {

    AbstractHook df = new AbstractHook();

    @Before
    public void createdriver() {
        df.getdriver();
        driver.get("some url");// no need 

    }
}

3. Код TestScript

    public class TestScript01 extends AbstractHook {
        WebDriver driver = getdriver();

        @Given("^I want to open the gmail url on firefox$")
        public void i_want_to_open_the_Gmail_url_on_firefox() throws Throwable {

            driver.get("give some url");
        }
}

4.Runnerclass

@RunWith(Cucumber.class)
@CucumberOptions(features = "Feature", monochrome = true, glue = { "com.scripts" }, plugin = { "pretty","html:target/cucumber" },
         tags = {"@sa,@sanity" },
        // dryRun = false)
public class RunnerClass {

}

Попробуйте, таким образом, Драйвер будет инициализирован один раз и использован во всех классах TestScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...