Cucumber.runtime.CucumberException的错误是什么:Arity不匹配:Java中硒中的步骤定义 [英] what is the error of cucumber.runtime.CucumberException: Arity mismatch: Step Definition in selenium with Java

查看:61
本文介绍了Cucumber.runtime.CucumberException的错误是什么:Arity不匹配: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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆