selenium webdriver:无法从webElement.getText()获取数据

时间:2013-10-16 05:39:15

标签: java selenium webdriver selenium-webdriver

我使用硒进行自动化测试

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

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()是一个空字符串

3 个答案:

答案 0 :(得分:1)

  • WebElements有时可能是空的,例如'<br/>'
  • 可能只包含其他元素,例如'<a hre='...'><img .../></a>'
  • 此外getText()仅返回可见的文字。

答案 1 :(得分:1)

尽量不要使用getText,而是使用带有xpath表达式的findElement,例如"//li[contains(., 'your_name_expected_to_be_in_searchlist')]"

因此,你的循环将遍历期望的名称,并尝试在searchList中找到它们作为元素,用xpath的contains方法描述。

答案 2 :(得分: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;
}
}