Selenium:如何使用相同的定位器获取页面上可见的所有文本的数组

时间:2011-08-17 11:52:11

标签: css selenium selenium-rc

我在网页的各个部分都有以下定位器:(摘录HTML)

<table id="userPlaylistTable" cellspacing="0" cellpadding="0">
   <p class="title"> ABC </p>
   <p class="title"> DEF </p>
   <p class="title"> GHI </p>

现在,以上所有都有完全相同的定位器,所以如何将它们全部变成字符串:“ABC DEF GHI”

我想得到这个字符串,因为这是一个表,这些是在该表中按特定顺序排列的项目。如果我重新安排订单,那么我将能够验证重新排序已经发生,因为获得的字符串会改变。

我试过

se.get_text("css=table#userPlaylistTable p.title")

但这只给了我第一个元素的文字,即“ABC”

另外,如上所述,是否还有其他方法可以将订单发送到表格中的文本?

有人可以帮我解决上述问题吗? 非常感谢。 晴天

1 个答案:

答案 0 :(得分:1)

如果您正在使用RC,那么请尝试如下所述:

String s;
for(i=1;:i++)
{
String locator ="css=table#userPlaylistTable>p.title:nth("+i+")";
if(!selenium.isElementPresent(locator))
{
break;
}
String temp= selenium.getText(locator);
s.concat(temp);
}

在上面的代码中,我正在迭代html代码。如果找到定位器,我将获取文本并将其与String s 连接。如果定位器不存在,我就会离开循环。