Firefox 如何使用SeleniumWebDriver读取DIV元素的id值?

Firefox 如何使用SeleniumWebDriver读取DIV元素的id值?,firefox,selenium,webdriver,selenium-webdriver,Firefox,Selenium,Webdriver,Selenium Webdriver,发现以下错误: 请选择一个标题 请输入你的名字 请输入您的姓 下面是我的代码片段。我想得到ID的值,即ct100\u contentHolder\u vs\u ValidationSummary。使用SeleniumWeb驱动程序。h 您可以尝试以下方法: <div id="ctl00_ContentHolder_vs_ValidationSummary" class="errorblock"> <p><strong>The following e

发现以下错误:

  • 请选择一个标题
  • 请输入你的名字
  • 请输入您的姓
下面是我的代码片段。我想得到ID的值,即ct100\u contentHolder\u vs\u ValidationSummary。使用SeleniumWeb驱动程序。h

您可以尝试以下方法:

<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>
但在这种情况下,此分区的类应该是唯一的。

您可以尝试以下方法:

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

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

使用以下代码提取第一个div的id:

String id=driver.findElementByXpath("//div[@class='errorblock']").getAttribute("id"));
这是页面上可用的所有div的代码:

WebElement div = driver.findElement(By.tagName("div"));
div.getAttribute("id");
List div=driver.findElements(按.tagName(“div”);
for(WebElement e:div){
div.getAttribute(“id”);
}

使用以下代码提取第一个div的id:

String id=driver.findElementByXpath("//div[@class='errorblock']").getAttribute("id"));
这是页面上可用的所有div的代码:

WebElement div = driver.findElement(By.tagName("div"));
div.getAttribute("id");
List div=driver.findElements(按.tagName(“div”);
for(WebElement e:div){
div.getAttribute(“id”);
}

我知道这个答案真的很晚了,但我想把它放在这里,供后来的人参考。除非绝对必要,否则应避免使用XPath进行搜索,因为它更复杂、更容易出错且速度较慢。在这种情况下,您无需使用XPath即可轻松完成已接受答案的操作:

List<WebElement> div = driver.findElements(By.tagName("div"));
for ( WebElement e : div ) {    
    div.getAttribute("id");    
}
一些解释。。。此行使用CSS选择器查找第一个元素(
.findElement
vs
.findElements
)。CSS选择器
div.errorblock
,用于查找类中的所有
div
元素(以句点
表示)
errorblock
。一旦找到它,我们就使用
.getAttribute()
获取ID


CSS选择器是一个伟大的工具,所有自动机都应该在他们的工具箱中。这里有一个很好的CSS选择器参考:。

我知道这个答案真的很晚了,但我想把它放在这里,供后来的人参考。除非绝对必要,否则应避免使用XPath进行搜索,因为它更复杂、更容易出错且速度较慢。在这种情况下,您无需使用XPath即可轻松完成已接受答案的操作:

List<WebElement> div = driver.findElements(By.tagName("div"));
for ( WebElement e : div ) {    
    div.getAttribute("id");    
}
一些解释。。。此行使用CSS选择器查找第一个元素(
.findElement
vs
.findElements
)。CSS选择器
div.errorblock
,用于查找类中的所有
div
元素(以句点
表示)
errorblock
。一旦找到它,我们就使用
.getAttribute()
获取ID


CSS选择器是一个伟大的工具,所有自动机都应该在他们的工具箱中。这里有一个很棒的CSS选择器参考:。

Hi Abhi Mishra。。如果div元素中没有类,我该怎么办。。当时我如何读取id,那么除了id之外还有什么属性可以使用。如果您的id带有除法,那么您可以使用类似于//div[../strong[contains(text(),'the following errors was found:')]]的xpath。您好,Abhi Mishra。。如果div元素中没有类,我该怎么办。。当时我如何读取id,那么除了id之外,还有什么属性可以使用。如果您只有带除法的id,那么可以使用类似于//div[../strong[contains(text(),'the following errors was found:')]]的xpath。这必须是“e.getAttribute(“id”);这必须是“e.getAttribute(“id”);”