gpt4 book ai didi

java - 通过 Selenium WebDriver 验证列表元素

转载 作者:行者123 更新时间:2023-11-30 06:23:49 24 4
gpt4 key购买 nike

WebElement select = myD.findElement(By.xpath("//*[@id='custfoodtable']/tbody/tr[2]/td/div/select"));
List<WebElement> allOptions = select.findElements(By.tagName("option"));
for (WebElement option : allOptions) {
System.out.println(String.format("Value is: %s", option.getAttribute("value")));
option.click();
Object vaLue = "Gram";
if (option.getAttribute("value").equals(vaLue)) {
System.out.println("Pass");
} else {
System.out.println("fail");
}
}

我可以验证列表中的一个元素,但下拉列表中有大约 20 个元素需要验证,我不想使用上述逻辑 20 次。有更简单的方法吗?

最佳答案

不要使用 for-each 结构。它仅在迭代单个 Iterable 时有用/大批。您需要遍历 List<WebElement>和数组同时进行。

// assert that the number of found <option> elements matches the expectations
assertEquals(exp.length, allOptions.size());
// assert that the value of every <option> element equals the expected value
for (int i = 0; i < exp.length; i++) {
assertEquals(exp[i], allOptions.get(i).getAttribute("value"));
}

在 OP 稍微改变了他的问题后进行编辑:

假设您有一组期望值,您可以这样做:

String[] expected = {"GRAM", "OUNCE", "POUND", "MILLIMETER", "TSP", "TBSP", "FLUID_OUNCE"};
List<WebElement> allOptions = select.findElements(By.tagName("option"));

// make sure you found the right number of elements
if (expected.length != allOptions.size()) {
System.out.println("fail, wrong number of elements found");
}
// make sure that the value of every <option> element equals the expected value
for (int i = 0; i < expected.length; i++) {
String optionValue = allOptions.get(i).getAttribute("value");
if (optionValue.equals(expected[i])) {
System.out.println("passed on: " + optionValue);
} else {
System.out.println("failed on: " + optionValue);
}
}

此代码基本上完成了我的第一段代码所做的工作。唯一真正的区别是,现在您是手动完成工作并打印结果。

之前,我使用了 assertEquals() 来自 Assert 的静态方法JUnit 框架的类。该框架是编写 Java 测试和 assertEquals() 的事实上的标准。方法族是验证程序结果的标准方法。他们确保传递给方法的参数相等,如果不相等,则抛出 AssertionError。 .

无论如何,您也可以手动完成,没问题。

关于java - 通过 Selenium WebDriver 验证列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17746565/

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