Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what is the error of cucumber.runtime.CucumberException: Arity mismatch: Step Definition in selenium with Java

I have wrritten a feature file to test the create elements button. But it generates an error message of

cucumber.runtime.CucumberException: Arity mismatch: Step Definition. 

I dont know why its happening since I am new to automation testing.

The following is the code that I have written.

@When("^create elements$")
public void create_elements_for_attributes(WebElement elementToClick) throws Throwable {
driver.findElement(By.id("newElement")).click();
}

The error that I have recieved is as follows.

cucumber.runtime.CucumberException: Arity mismatch: Step Definition 'mCollector.features.StepDefinitions_mCollector.create_elements_for_attributes(WebElement) in file:/C:/Users/Admin/workspace/MStudio%20-%20eBilling/bin/' with pattern [^create elements$] is declared with 1 parameters. However, the gherkin step has 0 arguments [].
like image 479
Chathurika Prabodani Avatar asked May 05 '16 03:05

Chathurika Prabodani


1 Answers

In your create_elements_for_attributes method you are expecting one argument of type WebElement but your regex does not capture any arguments. It should look something like that instead:

@When("^create elements \"([^\"]*)\"$")

And then in your feature file:

When create elements "element"

But that won't work either because you can't pass a WebeElement object from your Cucumber feature file. You should only operate with primitive values and DataTables. Other types (like WebeElement) should be created internally in the glue code itself.

like image 100
Eugene S Avatar answered Sep 30 '22 19:09

Eugene S