如何为webElement编写动态xpath?
我经历了很多关于stackoverflow的问题,但没有找到解决问题的方法 -网页上有一个元素具有text=“Success” 现在我想定位那个元素,元素的id一直在变化。还有其他一些类似名称的元素,如成功、不成功、成功等。。在同一页上,但我想搜索特定元素“Success”。我该怎么做?在这种情况下, 我认为XPath的-startsWith()和contains()方法不起作用如何为webElement编写动态xpath?,xpath,selenium-webdriver,dynamic,Xpath,Selenium Webdriver,Dynamic,我经历了很多关于stackoverflow的问题,但没有找到解决问题的方法 -网页上有一个元素具有text=“Success” 现在我想定位那个元素,元素的id一直在变化。还有其他一些类似名称的元素,如成功、不成功、成功等。。在同一页上,但我想搜索特定元素“Success”。我该怎么做?在这种情况下, 我认为XPath的-startsWith()和contains()方法不起作用 您可以使用以下xpath来查找它。i) //[text()='Success']或ii)/[.='Success']
您可以使用以下xpath来查找它。i) //[text()='Success']或ii)/[.='Success'].您可以始终使用其他属性。您不限于id。 下面是几个例子: 基本xpath语法:
//tag[@tag-attribute='arrtibute-value']
//*[contains(@tag-attribute,'attribute-value')]
//tag[text()='inner-text']
//*[contains(text(),'inner-text')]
其中:tag
=html标记*
=标记通配符-匹配任何标记标记属性
=标记内的任何属性(名称、id、类…)属性值
=指定标记属性的值考虑以下示例:
<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>
就我个人而言,我更喜欢使用其他属性而不是文本,这主要是因为文本可能具有保留字符,这可能会弄乱xpath
您还可以使用以下内容检查xpath的有效性: //*[@text()='Success']
您可以共享HTML代码吗?使用类似于//div[contains(text(),'Success')的XPATH,在这里您可以用正在查找的标记替换div。
//*[@text()='Success']