2

我使用 selenium 进行自动化测试

我使用以下代码来验证搜索列表中是否存在名称

searchList = driver.findElements(By.cssSelector(searchListLocator));

logger.log("Size of list : " + searchList.size());
for (WebElement searchItem : searchList) 
{

    logger.log("Search Item name :" + searchItem.getText())
    if (searchItem.getText().trim().compareTo(name) == 0)
    {
        inResult = true;
        logger.log("Exact match found in the list");
        break;
    }
}

有时我得到了Size of list : 11但是searchItem.getText()是一个空字符串

4

3 回答 3

1
  • WebElements 有时可以为空,例如'<br/>'
  • 可能只包含其他元素,例如'<a hre='...'><img .../></a>'.
  • getText()只返回可见的文本。
于 2013-10-16T13:22:13.847 回答
1

尽量不要使用getText,而是使用findElementxpath 表达式,比如"//li[contains(., 'your_name_expected_to_be_in_searchlist')]".

因此,您的循环将遍历预期的名称,并尝试在 searchList 中将它们作为元素查找,并使用 xpath 的contains方法进行描述。

于 2013-10-16T13:34:43.937 回答
0
Little modification in your code-

for (WebElement searchItem : searchList) 
{

    logger.log("Search Item name :" + searchItem.getText())
   for(int i=0;i<searchItem.size();i++)
{
if(searchItem.get(i).getText().equals(name)))
 inResult = true;
        logger.log("Exact match found in the list");
        break;
}
}
于 2013-10-16T06:30:03.933 回答