我是Robot Framework的新手,我正在尝试使用 Run Keyword If .. ELSE ..
.
该怎么做:
添加新关键字以检查页面是否包含单词"closed" . 如果是,请刷新页面 . 如果没有,请单击元素"this"并继续执行该方案的其余部分 .
*** Keywords ***
Check if anything is closed
${ClickThis} Click Element xpath=//*[@id="this"]
${Closed} Page Should Contain Element xpath=//*[text()='Closed']
Run Keyword If ${Closed} =='PASS' Reload Page ELSE ${ClickThis}
运行时会发生什么:
"Closed"未出现在页面中 . 单击"this" . 然后测试失败,因为:Page should have contained element 'xpath=//*[text()='Closed']' but did not
请帮我纠正一下 .
编辑:已将 Page Should Contain
更改为 Page Should Contain Element
. 结果相同 .
1 回答
ELSE
之后的参数应该是另一个关键字 .有效发生的是这条线
你已经为
${ClickThis}
指定了值 - 这是什么,${None}
,因为Click Element
没有返回值 .在这一行,你再次分配
${Closed}
的返回值Page Should Contain
,这不是你所期望的 - 如果文本不存在,那么本身关键字要么失败(如你的情况那样),要么默默地传递;但不会返回值 .
因此,要获得您尝试完成的操作,请使用Run Keyword And Return status作为"page should contain" - 它将根据wrapped关键字的退出状态返回True / False:
如果文本在页面中,
${Closed}
的值将为${True}
,否则为${False}
;在Run Keyword If
块中使用它,传递 keyword 作为第二个参数: