我为同一个定位器获得了不同的结果。例如
//table[@id='foo']
测试ElementPresent
时返回true,但XpathCount
返回0。在Selenium v1.0.10 IDE中,Find
按钮突出显示两个函数的正确元素。关于可能导致这种情况的任何想法?
注意:
答案 0 :(得分:1)
嗯,这不是非验证的验证。
我使用Selenium来测试带有框架的GUI。要使isElementPresent和getXpathCount工作,我总是必须先用selectFrame选择一个框架(甚至让isElementPresent正常工作)。通过打开一个URL,似乎根本没有选择框架。
这就是HTML和相应的selectFrame代码:
<frameset id="mainframeset"><frame name="nav" id="nav" src....
selenium.selectFrame("nav");
答案 1 :(得分:0)
使用这些XPath表达式:
boolean(//table[@id='foo'])
和
count(//table[@id='foo'])
如果table
元素的id
属性值为"foo"
,则上面的第一个表达式应评估为true()
,上面的第二个表达式应评估为正整数。
答案 2 :(得分:0)
不是这个问题的直接答案,而是一个解决方法,如果你正在阅读这个并希望循环这些元素。在for循环中使用isElementPresent
,如下所示:
for(int i = 2; selenium.isElementPresent("//table[@id='foo']//tr["+i+"]"); i++)
{
selenium.getText("//table[@id='foo']//tr["+i+"]//td["+columnNum+"]");
}
请注意,我们从2开始,因为XPath是从1索引的,我们想跳过标题