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
对象.您应该只使用原始值和数据表进行操作.其他类型(如 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.
相关文章