我在stackoverflow上遇到了很多问题,但没有找到我的问题的解决方案
- 网页上有一个文字=“成功”的元素 现在我想找到那个元素,元素的id不断变化。还有一些其他具有相似名称的元素 - 成功,不成功,成功等...在同一页面上但我想搜索特定元素“成功”。我该怎么办?在这种情况下,
我不认为 - startsWith()和contains()方法可以使用XPath。
答案 0 :(得分:0)
您可以使用以下xpath来查找它。 i)// [text()=' Success']或ii)// [。=' Success']。
答案 1 :(得分:0)
您始终可以使用其他属性。你不仅限于身份证。 以下几个例子:
基本xpath语法:
//tag[@tag-attribute='arrtibute-value']
//*[contains(@tag-attribute,'attribute-value')]
//tag[text()='inner-text']
//*[contains(text(),'inner-text')]
<强>其中:强>
tag
= html标记
*
=标记通配符 - 匹配任何标记
tag-attribute
=标记内的任何属性(name,id,class ...)
attribute-value
=指定标记属性的值
请考虑以下示例:
<div id="countryDiv1">
<button type="button" class="btn btn-default" data-toggle="dropdown" data-id="ConsignorAddressCountryId" tabindex="1" id="randomGenerated">Text1</button>
</div>
<div id="countryDiv2">
<button type="button" class="btn btn-default" data-toggle="dropdown" data-id="ConsignorAddressCountryId" tabindex="2" id="randomGenerated">Text2</button>
</div>
此处我们有2个按钮具有相同的随机生成ID,但有一些差异,如tabindex
,inner text
,父div
的ID。
按钮1的示例xpath:
//button[@tabindex='1']
//button[@data-id='ConsignorAddressCountryId'][@tabindex='1']
//button[@data-id='ConsignorAddressCountryId'][text()='Text1']
//div[@id='countryDiv1']//button
就个人而言,我更喜欢使用其他属性而不是文本,主要是因为文本可能有保留字符可能会弄乱你的xpath。
您还可以使用以下方法检查xpath有效性:
答案 2 :(得分:0)
您可以尝试以下操作: -
//*[@text()='Success']