2011-07-06 63 views
1

Selenium有可能检查某个文本是否在页面上多次出现(无论次数多少,只要它不止一次)?Selenium测试重复文本

我知道我可以测试文本与

selenium.IsTextPresent(text) 

但是,当然,由于它发现一旦文本尽快返回true的。有没有办法查看文本是否在页面上多次存在?

+1

我会尝试,如果LastIndexOf!= IndexOf – nabuchodonossor

回答

2

您可以在HTML源代码进行操作:

selenium.GetHtmlSource(); 

那么简单的检查测试和最后一个索引的索引(如nabuchodonossor在他的评论中所建议的):

selenium.GetHtmlSource().IndexOf(text) > -1 && selenium.GetHtmlSource().IndexOf(text) != selenium.GetHtmlSource().LastIndexOf(text) 

您还可以删除在检查索引之前的所有html标记,并且仅在您要忽略注释,alt属性,标题属性等时保留可见文本。

+0

谢谢你会试试看 –

2

另一种方法是sel.getElementCount(xpath)或使用sel.getEval()运行JS脚本。这两种方法相对于sel.getHtmlSource()的优势在于您不会从硒服务器恢复整个页面的html。这项工作是在服务器端完成的,你可以节省带宽(可能还有速度)。