使用RobotFramework写web自动化测试脚本有2年多经验,感觉在用selenium2library做UI自动化时,重难点依旧是网页元素定位。如果是用firefox调试,可以用firepath插件进行定位,以及xpath的验证。
如果用chrome,xpath定位目前没用插件,稍微麻烦一点,F12开发者工具打开console,输入$x("[xpath]")之后回车,会返回满足条件的元素列表,其中[xpath]为xpath表达式,如:
$x("//label[text()='主导购']/../div/div/div/i")
最近换到的项目里,经常在console里已经定位到元素了,但写进脚本就是找不到,后来发现是前端使用frame控件的地方非常多。如果要定位的元素,按层上溯父节点里有iframe,那么需要先使用selenium2library的关键字:Select Frame,进入对应的frame控件里,再进行frame内的元素操作。如果又用到frame之外的元素,就需要先执行关键字:Unselect Frame。
下面是一个简单示例,判断frame内元素是否存在,以及获取元素text属性: