最近在用公司开发的自动化测试工具测UI和接口,遇到的一个小小小问题,记录一下。
在写测试用例的脚本过程中,我想获取页面上的元素,找到其ID,如下图:
想获取“用例设计“这个button,我按照老方法:
用XPath定位:
为://*[@id="auth"]/a
添加到我的用例中去,发现执行的时候并没有按预期执行:
上图是写的用例脚本,把刚刚的xpath://*[@id="auth"]/a添加进去,这个步骤的意思就是点击“用例设计“按钮,预期结果是能显示出用例设计按钮下UI测试和接口测试的按钮,发现实际结果是执行的是上一个按钮“测试计划“:
为什么添加的是“用例设计”的参数,跑的时候却跑到“测试计划”上去了?检索了一下“测试计划”,发现XPath和“用例设计”一样,都是//*[@id="auth"]/a,id是一样的,难怪。
这里解决的办法是,构建//span[text()=" "],先去控制台获取一把:
$x 可以用xPath的语法来获取页面上的元素:
把//span[text()="用例设计"]替换原来的,问题就解决了。一开始的时候,我获取页面上的按钮的方式是定位id,但是发现很多按钮都没有id显示:
如百度一下的按钮id是su,下图登录的按钮id不显示:
我就用XPath来定位,但是XPath会随着页面元素布局的改变而改变,没有直接获取按钮id那么准确(不过也能用)。公司开发的这个工具我个人觉得界面简洁,上手容易,还挺喜欢的,只是功能方面还不够强大,目前还在摸索中。