分享一个上周在写Nightwatchjs自动化测试遇到的问题及解决。
在我们的系统中存在这样一个场景,当管理员登录时候,点击头像有三个选项,下拉菜单是这样的:
Profile
Setting
Logout
当普通用户登录,点击头像,有两个选项下拉菜单是这样的:
Profile
Logout
这样就产生了一个问题,我们之前的Logout的操作都是在管理员下写的,是logout按钮在第三个,而普通用户用这个方法的时候,会找不到第三个按钮,这样脚本就报错了。
那么怎么办的,是用一个判断方法解决么?判断方法是可以解决的,判断不同用户的登录,来点击不同位置的logout按钮,但这样方式有点麻烦,逻辑有点复杂,还有更好的方式吗?
通过F12发现,logout不管按钮位置如何都使用ng-click="logout()"这个方法,那么直接找到这个方法对应的element点击即可。
代码修改如下:
// logout: 'ul.dropdown-menu-user:not(.status-dropdown-menu) > li:nth-child(3) > a'
logout: '[ng-click="logout()"]'
Q: 关于“Nightwatch.js”,你还有哪些想法?欢迎留言。