2011-12-16 81 views
1

我使用WebDriver,並且我有一個WebElement,它有幾個根標籤,每個div標籤都有多個div標籤。有沒有辦法只得到根標籤?WebDriver特定標籤

EG。 從以下「someid」字段獲取的WebElement包含以下數據。我想抓住這個元素的根div標籤(下面的例子有三個)默認情況下,它抓住根和任何div標籤,有沒有辦法只抓住這三個div標籤?沒有具體的名稱或ID來抓取它們,但是如果我能得到根div標籤,我可以通過它們循環更容易地找到每個需要的數據。感謝任何方向,或者讓我知道是否需要獲取更多信息。由於

<div id="someid"> 
    <div><more html that has div tags></div> 
    <div><more html that has div tags></div> 
    <div><more html that has div tags></div> 
</div> 

WebElement weMain = driver.findElement(By.id("someid")); 
// Looking for a way to just grab the root divs to my WebElement 
List<WebElement> weSomeElements = weMain.findElements(By.tagName("div")); 

感謝任何方向

回答

0

試試這個

List<WebElement> weSomeElements = 
    driver.findElements(By.CssSelector("div[id='someid'] div")); 

然後,你可以做這樣的事情:

WebElement element = weSomeElement.select(n).findElements(by.tagName("div")); 
var elementText = element.Text(); 
+0

謝謝,我仍然得到所有的div。 – Green 2011-12-16 19:11:10

1

嘗試:

driver.findElements(By.xPath("//div[@id='someid']/div") 

我認爲應該返回3周的div。

+0

謝謝,我還是讓所有的div雖然。 – Green 2011-12-16 19:11:16