这是代码,我需要获取“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来获取这些细节。
答案 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]"))