获取元素的Text而不将元素放入视口

时间:2015-02-27 05:04:48

标签: xpath selenium-webdriver viewport

以下是我的方法,其中tableComponent是表体元素。 当文本在一行中可见时,此方法可以正常工作,但如果该行具有滚动且文本不在视图端口,则该方法将失败。

我也尝试了CSS,运气不错...... 如果我使用scroltoview选项,我可以得到文本,但这是一种引导,要滚动到元素,我需要找到正确的行和列,并找到行和列,我只知道它可能出现在那个单元格中的文本。

这是Java,Selenium webdriver

   public IUIElement getRowContainingText(final String text) {
        return tableComponentElement.findUIElement(By
                .xpath(".//tr[*[self::td|self::th]//text()[contains(.,\""     +   text + "\")]]"));
    }

1 个答案:

答案 0 :(得分:0)

替代解决方案 -

List<webElement>rows=tableComponentElement.findElements(By.tagnamr("tr"));
for(webElement element:rows)
{
List<String>tabledata=rows.findElements(By.tagName("td"));
String desiredText=tableData.get(index);
//index will be the postion where text will appear in each row
}