gpt4 book ai didi

java - 使用 Cucumber DataTable 更新表单

转载 作者:行者123 更新时间:2023-12-02 01:23:26 25 4
gpt4 key购买 nike

我正在使用 DataTable 更新表单。如何在同一步骤中更新每个字段中的表单并在下一步验证更新后的表单?

这是我创建的功能文件

Scenario Outline: Update Entry
And I update entry
| fname | <fname> |
| lname | <lname> |
| email | <email> |
| number | <number> |
| gender | <gender> |

Examples:
|fname |lname |email |number |gender |
|AAA |bbb |aa@aa.com |987654321 |male |

这是我创建的步骤定义:(我知道这是错误的。我坚持不知道此步骤如何能够根据我声明的示例填充每个文本框。)

@Then("^I update entry$")
public void i_enter_new_entry(DataTable dt) throws Throwable {
Map<String,String> m = dt.asMap(String.class,String.class);

System.out.println("\nFilling form with below data\n");
for( String k : m.keySet())
{
System.out.println("Key -> " + k + " Value -> " + m.get(k));
enterText(fname_textbox, m.get(k));
enterText(lname_textbox, m.get(k));
enterText(email_textbox, m.get(k));
enterText(number_textbox, m.get(k));
enterText(gender_textbox, m.get(k));
}

}

所以基本上我的问题是,从场景大纲来看,我想更新每个文本框中的条目。

请告知如何执行此操作。我需要做 getter 和 setter 来存储数据吗?

最佳答案

试试这个。 (需要导入cucumber.api.DataTable;)

@And("^I update entry$")
public void updateEntry(DataTable args) {

List<String> elements = new ArrayList<>();
List<String> values = new ArrayList<>();
LinkedHashMap<String, String> dataTableValues = new LinkedHashMap<>();

for (int i = 0; i < args.getPickleRows().size(); i++) {
elements.add(args.getPickleRows().get(i).getCells().get(0).getValue());
values.add(args.getPickleRows().get(i).getCells().get(1).getValue());
dataTableValues.put(elements.get(i), values.get(i));
}

for (int i = 0; i < elements.size(); i++) {
WebElement textbox = null;
switch (elements.get(i)) {
case "fname":
textbox = driver.findElement(By.cssSelector("your selector here"));
break;
case "lname":
textbox = driver.findElement(By.cssSelector("your selector here"));
break;
case "email":
textbox = driver.findElement(By.cssSelector("your selector here"));
break;
case "number":
textbox = driver.findElement(By.cssSelector("your selector here"));
break;
case "gender":
textbox = driver.findElement(By.cssSelector("your selector here"));
break;
default:
fail("'" + elements.get(i) + "' is not part of the common DataTable arguments!");
break;
}
textbox.sendKeys(values.get(i));
}
}

关于java - 使用 Cucumber DataTable 更新表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57602887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com