我想知道是否有一种有效的方法来查找元素列表中的元素 例如:
WebElement menuItem;
List<WebElement> allMenuItems = driver.findElements(By.className("x-menu-list-item"));
for(WebElement item : allMenuItems){
if(item.getText().equals("aaa"){
menuItem = item;
break;
}
}
menuItem.click();
所以不是循环查找基于文本的元素,是否有一种从元素列表中查找元素的有效方法?
答案 0 :(得分:0)
是。您可以构建初始查询以立即查找元素。
如果您不需要按文本搜索,您可以使用CSS选择器来获得最大的可读性和效率。
但是,如果需要按文本搜索,则必须使用XPath表达式。
例如,您的代码可能只是
WebElement menuItem = driver.findElement(By.xpath("//*[contains(@class, 'x-list-menu-item') and contains(text(), 'aaaa')]"));
请注意,使用XPath进行的类查找并不完全正确。在线搜索以找到正确的结构。