我对黄瓜中的dataTable有疑问。如果我有以下dataTable:
Then the following options are displayed
| A |
| B |
| C |
我想执行一个断言来迭代每个元素并检查它的文本是否与dataTable中的任何选项匹配。这是怎么做到的?
以下是我到目前为止:
@Then("^the following options are displayed$")
public void the_following_options_are_displayed(DataTable options) throws Throwable {
List<List<String>> data = options.raw();
List<WebElement> optionsIcons = driver.findElements(By.className("options-icons"));
for (WebElement optionsIcons : optionsIcon) {
//Here is where I am stuck
}
我正在努力实现给出的示例问题,因为这与一个类有关,所以只需要一点指导。
答案 0 :(得分:0)
以下代码检查包含至少一个选项的所有元素。如果一个元素不包含任何这些选项,它将给出一个断言消息。
黄瓜特征
Then the following options are displayed
| option1 | optionText |
| option2 | optionText2 |
| option3 | optionText3|
Java类
@And("^the following options are displayed$")
public void the_following_options_are_displayed(DataTable options) {
List<List<String>> data = options.raw();
List<WebElement> optionsIcons = driver.findElements(By.className("options-icons"));
int count = 0;
for (WebElement optionsIcon : optionsIcons) {
count = 0;
for (int i = 0; i < data.size(); i++) {
if(optionsIcon.getText().contains(data.get(i).get(1))==true){
count ++;
}
}
Assert.assertTrue("There is no match found with these options", count!=0);
}
}