web-dev-qa-db-ja.com

cucumber.runtime.CucumberException:不一致のエラーは何ですか:Javaを使用したSeleniumのステップ定義

要素作成ボタンをテストするための機能ファイルを作成しました。しかし、それはのエラーメッセージを生成します

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

create_elements_for_attributesメソッドでは、WebElement型の引数が1つ必要ですが、正規表現は引数をキャプチャしません。代わりに次のようになります。

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

そして、あなたの機能ファイルで:

When create elements "element"

ただし、Cucumber機能ファイルからWebeElementオブジェクトを渡すことができないため、これも機能しません。プリミティブ値とDataTableのみを操作する必要があります。その他のタイプ(WebeElement)など)は、グルーコード自体の内部で作成する必要があります。

4
Eugene S