如何使用Selenium WebDriver读取DIV元素的id值?

时间:2012-11-22 05:36:04

标签: firefox selenium webdriver selenium-webdriver

<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。使用硒网络驱动程序。 h

3 个答案:

答案 0 :(得分:4)

你可以试试这个:

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

但在这种情况下,这种划分的类别应该是唯一的。

答案 1 :(得分: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");    
}

答案 2 :(得分:0)

我知道这个答案真的很晚,但我想把它放在后来的人身上。除非绝对必要,否则应该避免使用XPath进行搜索,因为它更复杂,更容易出错,而且速度更慢。在这种情况下,您可以轻松地执行接受的答案,而无需使用XPath:

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

一些解释......此行使用CSS Selector找到第一个元素(.findElement vs .findElements)。 CSS选择器div.errorblock使用类(由句点div符号化).来查找所有errorblock个元素。找到后,我们会使用.getAttribute()获取ID。

CSS选择器是一个很棒的工具,所有自动机都应该在他们的工具箱中拥有。这里有一个很棒的CSS Selector参考:http://www.w3.org/TR/selectors/#selectors