${i}= Set Variable 0
FOR ${i} IN RANGE 0 20
\ Test Scroll
\ Element Text Should Be xpath=//android.view.View[@index='0']//android.view.View[@text='Wiki']
\ ${Additional_pack_th}= Get Text xpath=//android.view.View[@text='Wiki']
\ ${status} Run Keyword And Return Status BuiltIn.Should Be Equal As Strings ${Additional_pack_th} Wiki
\ BuiltIn.Exit For Loop If ${status} == TRUE
\ BuiltIn.Continue For Loop If ${status} == False
${i}= BuiltIn.Evaluate ${i}+1
这是正确的方法吗?我的执行在这里失败...请帮助!
一个问题是语法。您无需在每一行上都使用\
,并且需要添加END
语句。另外,您不需要初始化或递增${i}
,当您使用FOR循环时,robot会自动执行。
FOR ${i} IN RANGE 0 20
Test Scroll
Element Text Should Be xpath=//android.view.View[@index='0']//android.view.View[@text='Wiki']
${Additional_pack_th}= Get Text xpath=//android.view.View[@text='Wiki']
${status} Run Keyword And Return Status BuiltIn.Should Be Equal As Strings ${Additional_pack_th} Wiki
BuiltIn.Exit For Loop If ${status} == TRUE
BuiltIn.Continue For Loop If ${status} == False
END
另外,这也不正确:
${status} == TRUE
${status}
替换为其值后,结果必须是正确的python表达式。 python不知道裸词TRUE
。状态永远只有“通过”或“失败”,因此您需要检查其中一个值。最后,您不需要在内置关键字前面加上BuiltIn.
。
因此,该语句应如下所示:
Exit For Loop If '${status}' == 'TRUE'
您不需要调用Continue For loop if
,因为连续操作是默认操作。如果要跳过某些关键字并开始下一个迭代,则只需要使用“继续”即可。您不会跳过任何关键字,因此完全没有必要。
最终版本应如下所示:
FOR ${i} IN RANGE 0 20
Test Scroll
Element Text Should Be xpath=//android.view.View[@index='0']//android.view.View[@text='Wiki']
${Additional_pack_th}= Get Text xpath=//android.view.View[@text='Wiki']
${status} Run Keyword And Return Status BuiltIn.Should Be Equal As Strings ${Additional_pack_th} Wiki
Exit For Loop If '${status}' == 'TRUE'
END
然而,所有这些,我不确定这是否可行。这取决于Test Scroll
的功能。由于您永远不会在每次迭代中更改xpath语句,因此它可能会一遍又一遍地找到相同的元素。