我正在处理一个表单,我需要验证列表视图中是否存在新记录。此列表视图包含200多条记录,因此我必须搜索特定值并断言它存在。
问题是我以前没有使用过Listview,并且在列下显示一个值似乎很笨拙。如果有人能就如何使用listview提供好的建议,我将不胜感激。
给定以下HTML,您可以尝试以下方法:
<ul>
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
</ul>
String lookingFor = "Item2";
List<WebElement> allElements = driver.findElements(By.tagName("li"));
for(WebElement ele: allElements ) {
if(ele.getText().trim().equalsIgnoreCase(lookingFor)) {
System.out.println("Got it");
}
}
如果这不是您要找的,请发布一些代码,我会对其进行审核。
问候
这可以使用xpath完成。
我假设你的listview是建立类似于一个表,所以你可以采取这个并根据你的需要修改它,但它应该给你一个良好的开端。
driver.findElement(By.xpath("//table//tr//td[<column #> - 1][contains(., '<text here>')]"));
比如说,您正在第3列中查找文本'ken4ward':
driver.findElement(By.xpath("//table//tr//td[2][contains(., 'ken4ward')]"));
我正在做“列# - 1”,因为xpath索引是基于0的,一般来说,我们不计算以0开头的列。
你应该考虑使用Hamcrest断言assertThat(selenium.findElement(LocatorOfListView)).getText(),
is(equalTo(ParticularItemYouWantToFind)));
.getText()
将存储列表视图的所有值,其余的解释自己