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 [].
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With