新浪微博:罗斯汀zdlzx
Sahi中对于动态ID的处理
上一篇 /
下一篇 2011-07-27 12:29:36
Sahi录制Ext-JS的脚本,会出现类似_textarea("ext-comp-1314"),用动态ID来标识某个空间。而即使源文件不变,ID在不同的运行轮次有时也会变化。所以,我们需要寻求不通过ID来识别控件的方法,降低维护脚本的代价。具体方法如下:
首先,尽量不要用带ID的accessor来标识,可以看看alternatives里面有没有其它更合适的非动态变化的标识。推荐这样做。而且如果你想录制的时候就优先使用这种方法,可以通过修改配置文件来达到这个目标。在sahi/userdata/config/userdata.properties中添加这样一行
recorder.ignorable_ids.pattern=^z_|^j_id|[:]j_id|^ext[-]gen|^[:]|^zk_comp_|^gwt[-]uid|^ext[-]comp
来达到忽略ext-comp作为标识的目的。
改之前如左图。改之后(重启Sahi,清browser cache后)如右图。
其次,可以用_textarea("/ext-comp/")这样的正则表达式来通配_textarea("ext-comp-1225")之类的ID。(我目前采用这个方法,可行)
以下3个语句实际等效。
_assertEqual("XXX has been saved successfully.", _getValue(_textarea("/ext-comp/")));
_assertEqual("XXX has been saved successfully.", _getValue(_textarea(2)));
_assertEqual("XX has been saved successfully.", _getValue(_textarea("x-form-textarea x-form-field[1]")));
收藏
举报
TAG: