2012-11-22 76 views
1
<div id="ctl00_ContentHolder_vs_ValidationSummary" class="errorblock"> 
    <p><strong>The following errors were found:</strong></p> 
    <ul><input type="hidden" Name="SummaryErrorCmsIds" Value="E024|E012|E014" /> 
    <li>Please select a title.</li> 
    <li>Please key in your first name.</li> 
    <li>Please key in your last name.</li> 
    </ul> 
</div> 

這是我的代碼片段。我想獲得ID的值,即ct100_contentHolder_vs_ValidationSummary。使用硒web驅動程序。^h如何使用Selenium WebDriver讀取DIV元素的id值?

回答

4

你可以試試這個:

String id=driver.findElementByXpath("//div[@class='errorblock']").getAttribute("id")); 

但是,在這種情況下,類的這種分歧應該是唯一的。

+0

嗨Abhi Mishra ..我可以做什麼,如果我沒有上課div元素..我該怎麼讀當時的ID – saikiran

+1

然後,除了身份證你有什麼可以使用的屬性。如果你只是有你的分區身份證,那麼你可以使用xpath像//div[../strong[contains(text(),'The found errors were found:')]]。 –

0

使用下面的代碼中提取第一個div的ID:

WebElement div = driver.findElement(By.tagName("div")); 
div.getAttribute("id"); 

這是所有的div在頁面上可用的代碼:

List<WebElement> div = driver.findElements(By.tagName("div")); 
for (WebElement e : div) {  
    div.getAttribute("id");  
} 
+0

這必須是「e.getAttribute(」id「);」 – MacDaddy

0

我知道這個答案是真的晚了,但我想把這個放在這裏給那些遲來的人。除非絕對必要,否則應避免使用XPath搜索,因爲它更復雜,更容易出錯,速度更慢。在這種情況下,你可以很容易做到接受的答案做了什麼,而不必使用XPath的:

String id = driver.findElement(By.cssSelector("div.errorblock")).getAttribute("id"); 

一些解釋......這條線找到使用CSS選擇器第一元素(.findElement VS .findElements)。 CSS選擇器div.errorblock定位所有div元素的類別(由句號.表示)errorblock。一旦找到,我們使用.getAttribute()獲得ID。

CSS選擇器是所有自動應用程序在其工具箱中應具備的強大工具。這裏有一個很棒的CSS選擇器參考:http://www.w3.org/TR/selectors/#selectors

相關問題