如何获取硒中特定标签的详细信息?

时间:2016-08-04 10:40:22

标签: java selenium selenium-webdriver selenium-firefoxdriver

这是代码,我需要获取“DDetail”详细信息。

<div style="float:left;padding-left: 7%">
   <h2 class="lotnumber style19Bold222" style="float:left"> LOT DETAILS </h2>
   <br>
   <p class="details style14SemiBold222 styleCapitalize" style="line-height:22px;">
      <b class="boldDetails">Materials:</b>
   </p>
   <p class="style14Reg555"> MDetail </p>
   <p class="details style14SemiBold222 styleCapitalize" style="line-height:22px;">
      <b class="boldDetails">Measurements:</b>
   </p>
   <p class="style14Reg555"> MeDetail </p>
   <p class="details style14SemiBold222 styleCapitalize" style="line-height:22px;">
      <b class="boldDetails">Size Notes:</b>
   </p>
   <p class="style14Reg555"> total height </p>
   <p class="details style14SemiBold222 styleCapitalize" style="line-height:22px;">
      <b class="boldDetails">Description:</b>
   </p>
   <p class="style14Reg555"> stepped square reverse </p>
   <p class="details style14SemiBold222 styleCapitalize" style="line-height:22px;">
      <b class="boldDetails">Markings:</b>
   </p>
   <p class="style14Reg555"> MarDetail </p>
   <p class="details style14SemiBold222 styleCapitalize" style="line-height:22px;">
      <b class="boldDetails">Condition:</b>
   </p>
   <p class="style14Reg555"> CDetail </p>
</div>

我尝试使用XPath但由于<p>不一致而​​无法正常工作。 我正在使用JAVA来获取这些细节。

3 个答案:

答案 0 :(得分:1)

如果您希望DDetail基于Description尝试以下xPath: -

  • 使用following轴:

    (//*[contains(text(), 'Description')]/following::p)[1]
    
  • 使用preceding轴:

    (//p[preceding::b[contains(text(), 'Description')]])[1]
    

注意: - 如果您需要其他详细信息,只需更改粗体文本,就像您希望MDetail只更改其中一个xpath文字Description一样到Materials

或者如果您只想基于班级名称style14Reg555,请尝试使用xpath中的索引,如下所示: -

(//p[@class = 'style14Reg555'])[4]

答案 1 :(得分:1)

如果您想获取标记<p class="style14Reg555"> DDetail </p>,可以使用XPath //p[text()=' DDetail ']

你没有指定语言,所以这里有一些Java。

driver.findElement(By.xpath("//p[text()=' DDetail ']"));

答案 2 :(得分:0)

您可以使用XPath来获取&#34; DDetail&#34;细节,java:

  driver.findElement(By.xpath("html/body/div[1]/p[8]"))