2010-10-07 32 views
1

在這一天的好一段時間裏,我一直在爲此感到震驚;我需要計算父div中childNodes的數量。它基本上就像一個列表,每個childNode都是我想要計數的一行。在HTML的樣子:Selenium:如何找到div的孩子節點數

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使用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

所以這些div是動態創建的。 所以當你創建這個時,你將使用一個變量來進行迭代,比如$ i,$ i ++。

打印div後,將$ i的值添加到隱藏字段。

如果有3個的div,$ I = 3,putvalue隱藏= 3

剛剛獲得使用JavaScript該字段的值。

或者

嘗試這些

http://api.jquery.com/parent/ http://api.jquery.com/children/

2

爲什麼不使用getXPathCount?像

getXPathCount("//div[contains(@class, 'list ')]/div[contains(@class, 'list-item-')]") 

應該做的伎倆。

.Net documentation

Java documentation

+0

因爲他想讓你可能要修改你的XPath來考慮到這一點 – AutomatedTester 2010-10-08 07:51:19

+0

@AutomatedTester好點的一個專區內的項目數。我已經更新了我的答案。 – 2010-10-08 13:12:12

相關問題