Cucumber Tutorial
First Selenium Test And Mapping In Cucumber
How To Create And Run Selenium Test In Cucumber ?
*Before moving ahead let's convert the project in Cucumber project :
Right-click on your project.
Move to an option 'Configure' and click on 'Covert to Cucumber Project'.
For creating a selenium test in cucumber, first add selenium dependency in pom.xml of your project :
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.0.0</version> </dependency>
Create a java packge in src/main/java as 'stepdefinitions' . Now create a step-definition class inside the above package as 'Steps.java' :
package stepdefinitions; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import io.cucumber.java.en.Given; public class Steps { @Given("^Navigate to google.com$") public void navigateToUrl() throws Throwable { // Write code here that turns the phrase above into concrete actions System.setProperty("webdriver.chrome.driver","..\\CucumberSeleniumProject\\src/main\\resources\\drivers\\chromedriver99.exe"); WebDriver driver = new ChromeDriver(); driver.get("https:\\www.google.com"); driver.close(); } }
Create a '.feature' extension file inside 'Features' folder of the project as 'feature.feature' .
For an example, write below scenario in feature file :
Feature: Title of your feature
I want to use this template for my feature file
Scenario: Navigate to a url
Given Navigate to google.com
*Here, 'Scenario' and 'Given' are Gherkin keywords that we will be discussed in further articles.
Run feature.feature file as 'Cucumber Feature'.
Following output would be displayed :
Scenario: Navigate to a url # Features/feature.feature:4
Given Navigate to google.com # stepdefinitions.Steps.navigateToUrl()
1 Scenarios (1 passed)
1 Steps (1 passed)
0m37.244s
Mapping Of Step-Definition Class With Feature File To achieve mapping, what we pass in annotaion as argument in step-definition class must be same as the statement of that annotaion in its feature file steps. In above example, we can see :
In step-definition class -
@Given("^Navigate to google.com$")
And in feature file -
Given Navigate to google.com