在一天中的大部分时间里,我一直在为此而奋斗;我需要计算父div中childNodes的数量。它基本上就像一个列表,每个childNode都是我想要计算的行。 html看起来像:
div<@class="list ">
div<@id="list-item-01">
div<@id="list-item-02">
div<@id="list-item-03">
div<@id="list-item-04">
div<@id="list-item-05">
...
</div>
我的主要方法是使用一些javascript在Selenium中使用getEval()
函数。
失败的例子:
String locator = "xpath=//div[contains(@class,'list')]";
String jscript = "var element = this.browserbot.findElement('"+locator+"');";
jscript += "element.childNodes.length;";
String locator = "xpath=//div[@class='list']";
String jscript = "var element = this.browserbot.findElement('"+locator+"');";
jscript += "element.childNodes.length;";
现在我知道元素在那里,我的xpath是正确的,因为我尝试使用.isElementPresent
并返回true。所以Selenium和divs有点时髦。
我也用document.evaluate()
作为我的javascript命令,但事实证明这一点毫无结果。
答案 0 :(得分:2)
为什么不使用getXPathCount
?像
getXPathCount("//div[contains(@class, 'list ')]/div[contains(@class, 'list-item-')]")
应该这样做。
答案 1 :(得分:0)
所以这些div是动态创建的。 所以当你创建它时,你将使用一个变量进行迭代,比如$ i,$ i ++。
打印div后,将$ i的值添加到隐藏字段。
如果有3个div,$ i = 3,则putvalue of hidden = 3
使用javascript获取该字段的值。
或者
试试这些
http://api.jquery.com/parent/ http://api.jquery.com/children/