cucumber.runtime.CucumberException的错误是什么:Arity不匹配:使用Java在selenium中的步骤定义

时间:2016-05-05 03:03:20

标签: java selenium-webdriver cucumber automated-tests

我已经编写了一个功能文件来测试创建元素按钮。但它会生成

的错误消息
cucumber.runtime.CucumberException: Arity mismatch: Step Definition. 

我不知道为什么会发生这种情况,因为我不熟悉自动化测试。

以下是我编写的代码。

@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 [].

1 个答案:

答案 0 :(得分:4)

create_elements_for_attributes方法中,您期望一个WebElement类型的参数,但您的正则表达式不会捕获任何参数。它应该看起来像那样:

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

然后在您的功能文件中:

When create elements "element"

但这不起作用,因为你无法从Cucumber特征文件中传递WebeElement对象。您应该只使用原始值和DataTables。其他类型(如WebeElement)应该在胶水代码本身内部创建。