Sahi 使用技巧2-高亮查找元素以及正则匹配元素
Sahi作为一个开源的 Web UI 自动化测试框架,在中国软件测试行业不是很流行。尽管它的知名度不及开源的 Selenium和收费的quicktest pro,用户群也不大(貌似国外的测试人员用的更多),但是有着它的优势,比如基于上下文的页面元素识别机制和隐式页面加载响应等待机制等,具体细节可以看这里。
使用sahi也有一段时间了,把自己使用时遇到的问题和使用心得记录一下想必也是极好的。
刚开始使用sahi时,觉得sahi好神奇,可以录制脚本然后回放。后来慢慢熟悉sahi后,简单的录制脚本已经不能满足我的要求,所以不得不开始自己写脚本。这里就会遇到一个问题:如何灵活的编写sahi的脚本,让脚本可以在页面发生微小调整后不会因为找不到标签元素而失效。
正是sahi基于上下文的页面元素识别机制,可以使用_near、_in、_under、_above等api来让sahi灵活的找到目标元素,同时sahi api 规定identifier是支持正则表达式的,这也大大地增加了识别灵活性。如图1,假设想要确定存在且仅存在一条项目名称为123的记录,但是实际上因为各种原因是存在项目名称一样的另一条记录而且该记录在页面也是可见的,如果只是判断存在cell(“123”)就会出现问题。这时如果在同一个表格里,用_near就不是很好的选择,sahi会找到最先出现的cell(“123”),仍然无法保证唯一确定。用_leftOf把结束日期带进来
_cell("123",_lef