Cucumber.runtime.CucumberException的错误是什么:Arity不匹配:Java中硒中的步骤定义 [英] 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.
以下是我编写的代码.
@When("^create elements$")
public void create_elements_for_attributes(WebElement elementToClick) throws Throwable {
driver.findElement(By.id("newElement")).click();
}
我收到的错误如下.
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 [].
推荐答案
在您的 create_elements_for_attributes
方法中,您期望一个类型为 WebElement
的参数,但是您的正则表达式不会捕获任何参数.论点.它应该看起来像这样:
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"
但是这也不起作用,因为您无法从Cucumber功能文件中传递 WebeElement
对象.您应该只使用原始值和DataTables进行操作.其他类型(例如 WebeElement)
应该在粘合代码本身内部创建.
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.
这篇关于Cucumber.runtime.CucumberException的错误是什么:Arity不匹配:Java中硒中的步骤定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!