我已经编写了一个功能文件来测试创建元素按钮。但它会生成
的错误消息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 [].
答案 0 :(得分:4)
在create_elements_for_attributes
方法中,您期望一个WebElement
类型的参数,但您的正则表达式不会捕获任何参数。它应该看起来像那样:
@When("^create elements \"([^\"]*)\"$")
然后在您的功能文件中:
When create elements "element"
但这不起作用,因为你无法从Cucumber特征文件中传递WebeElement
对象。您应该只使用原始值和DataTables。其他类型(如WebeElement)
应该在胶水代码本身内部创建。