一般写web自动化的时候都有个点击导航到目标页面的过程,本tip展示了一种简答有效率的办法。
定义关键字如下:
Goto - ${target}
@{gui_path} Split String ${target} ${SPACE}>${SPACE}
: FOR ${gui_text} IN @{gui_path}
\ Wait Until Page Contains ${gui_text}
\ Sleep 0.2
\ Click Element xpath=//*[normalize-space(text())="${gui_text}"]
使用举例:
*** Test Cases ***
zte
Open Browser http://www.cnbeta.com ff
Goto - 主题 > z > ZTE 中兴
Close Browser
解释:
1. Robot Framework关键字名字里面是可以放一个或者多个参数的,前提是不得有其他常规参数,这样关键字名字可以变化,比如本例;
2. xpath可以按*[text()="xxx"]寻找元素,Click Element会要求它返回第一个并点击。若你有多个相同text的而想点击其中某个,请想法让它的text与众不同,或者:
3. 重写上面的关键字,用相对路径,部分匹配*[contains(text(),"xxx")], 或者Get Webelements返回list按下标取值;
4. 即使text()属于span之类的元素,也是可以点击的,因为点击会传递给其上层button,link之类的元素,所以用Click Link不行但是Click Element可以