XML相对路径导航场景下软件测试如何获取div容器的parentid整数值
问题描述
我在开展软件测试工作时,需要通过XML相对路径导航获取div容器的parentid对应的具体整数值。我最初的实现思路是先筛选值为"1"的唯一元素进入对应div块,该方法目前可正常运行。但我现在想要了解,采用什么最优方法可以通过相对导航回退到正确的父div块,进而获取对应的ID。
解决方案
你可以直接通过XPath的轴定位实现相对路径回退,以下是两种适配不同场景的最优方案:
- 如果你要找的是当前子元素的直属父div,直接用
parent::轴即可:
假设你定位值为"1"的子元素的XPath为//*[text()="1"],补全后获取父div的parentid属性的写法为://*[text()="1"]/parent::div/@parentid
拿到属性值后用对应开发语言的int()方法转换即可得到整数值。 - 如果父div和目标子元素之间可能存在其他嵌套节点,推荐用
ancestor::轴匹配最近的带parentid属性的div,鲁棒性更高,适配后续页面结构微调的场景://*[text()="1"]/ancestor::div[@parentid][1]/@parentid
写法末尾的[1]表示取距离当前子元素最近的匹配节点,避免定位到更上层的同类div。
补充说明:如果你的测试框架用的是Selenium、Playwright等工具,获取属性的接口对应为
get_attribute('parentid'),调用前可以先判断节点是否存在,避免属性为空时报错。
内容的提问来源于stack exchange,提问作者user14826807
相关产品推荐
相关产品推荐

