要素作成ボタンをテストするための機能ファイルを作成しました。しかし、それはのエラーメッセージを生成します
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)
など)は、グルーコード自体の内部で作成する必要があります。