cucumber-junit5-framework/src/test/java/cucumber/Stepdefs.java

69 lines
2.1 KiB
Java

package cucumber;
import io.cucumber.java.After;
import io.cucumber.java.Before;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.junit.jupiter.api.Assertions;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
import static org.junit.jupiter.api.Assertions.fail;
public class Stepdefs {
private RemoteWebDriver driver;
@Before
public void setUp() {
}
@After
public void tearDown() {
if (driver!=null) {
driver.quit();
}
}
@Given("I have a driver for {string}")
public void i_have_a_driver_for(String browser) {
driver = generateDriver(browser);
}
@When("I navigate to test.io")
public void i_navigate_to_test_io() {
driver.get("https://test.io/");
if (!driver.getCurrentUrl().equals("https://test.io/")){
fail("Browser navigation failed");
}
}
@Then("The page is displayed")
public void the_success_message_is_displayed() {
Assertions.assertEquals("QA Testing as a Service | test IO", driver.getTitle());
}
//helpers
public RemoteWebDriver generateDriver(final String browser) {
if (browser.equals("chrome")){
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.setHeadless(true);
options.addArguments("--ignore-certificate-errors"); // only for limited test envs
return new ChromeDriver(options);
} else if (browser.equals("firefox")){
WebDriverManager.firefoxdriver().setup();
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true);
options.addArguments("--ignore-certificate-errors");
return new FirefoxDriver(options);
}
return null;
}
}