一.定位单节点
同级节点定位:
页面代码如下
我们需要通过后面的节点去定位前面的节点时,有两种方式:
1.//td[contains(text(),'2104191603')]/../td[1]
2.//td[contains(text(),'2104191603')]/preceding-sibling::td[1]
都是通过当前节点定位同一级上一个节点。可以通过修改对应级别去定位想要的节点。
如果需要通过前面的节点去定位后面的节点:
//td[contains(text(),'2104191603')]/following-sibling::td[1]
父子级节点定位:
页面代码如下
当我们需要通过某个子节点定位父级节点时,如果只需要找到父节点,那么可以使用
//div[contains(text(),'施工证')]/..
如果需要定位到父节点的“div” tag,可以使用
//div[contains(text(),'施工证')]/parent::div
也可以使用通配符*来完成父节点定位
//div[contains(text(),'施工证')]/parent::*
当我们需要通过父节点定位子节点时,可以直接在后面接上/child::span
二.定位多节点
如上图,页面存在很多动态的图片上传数量限制,我们需要根据数量限制去上传对应的图片。首先就需要定位页面图片数量的父级节点,再通过这个父级节点定位到第一个span标签就可以拿到数量限制了。
所以对应的定位方法如下,会定位到所有数量限制
//*[contains(@class, 'drawingsUploadLayout-container-imgLimit')]/span[1]