前言:写自动化脚本时遇到一个很奇葩的需求,我前台上传文件后,系统会返回我该文件的id,我需要根据id找到上传后的文件,然后验证文件的正确性。 到此为止都是比较容易实现的,可是我还需要定位到该元素上一层的兄弟元素,获取到该元素的上传年份,凭借我短短几个月的css经验,实在不知道该如何操作。同时咨询了公司的自动化大神和前端大神们,得知可以通过js及xpath来操作,我暂时选择了xpath,后期再更新js的操作代码;
如下方代码,我已知元素id为“myId”,需要定位到“p”元素对应的文本:
<html>
<body>
<div id="A">
<!--子节点定位父节点的兄弟节点-->
<div>
<div>
<p>父节点的兄弟节点</p>
<div>
<div id="myId">子节点</div>
</div>
</div>
</div>
</div>
</body>
</html>
首先定位到id为“myId”的元素:
//div[@id='myId']
然后定位祖父元素(“.”是当前节点,“..”是父节点):
//div[@id='myId']/../..
然后定位祖父节点的子节点tag为p 的元素(“.”是当前节点,“..”是父节点):
//div[@id='myId']/../../p