我在网页中有以下元素。我想获取id为#34; pmt-id-234"的元素。它有一个classname的后代,类型为type2。
<div id="cards">
<div id="pmt-id-123" class="payments">
<div>
<div class="type1">Text1</div>
<div>
</div>
<div id="pmt-id-234" class="payments">
<div>
<div class="type2">Text1</div>
<div>
</div>
</div>
注意:
尝试了什么?下面给出了两个div元素。
'//*[@id="cards"]//*[starts-with(@id,"pmt-id-")]'
现在,如何获取具有class =&#34; type2&#34;
的后代div的div以下内容不会产生任何结果。
'//*[@id="cards"]//*[starts-with(@id,"pmt-id-")//*[contains(@class, "type2")]]'
'//*[@id="cards"]//*[starts-with(@id,"pmt-id-")][contains(@class, "type2")]'
请告诉我怎么做?
答案 0 :(得分:3)
如果只有div
,我会针对*
而不是divs
进行测试。
此XPath将选择ID为div
的{{1}}下面的cards
,其ID为pmt-id-
,并且还有div
类type2
1}}:
'//div[@id="cards"]//div[starts-with(@id,"pmt-id-") and .//div[contains(@class, "type2"]]'
请注意,您可能需要特别注意与@class的匹配,以避免匹配type22
或abctype2
(如果可能的话)。