[英]Robotframework Create LOOP TO FIND Element
${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 循環時,機器人會自動執行此操作。
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.
為內置關鍵字添加BuiltIn.
.
因此,該語句應如下所示:
Exit For Loop If '${status}' == 'TRUE'
Continue For loop if
因為Continue For loop if
是它將執行的默認操作,則不需要調用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 語句,因此它可能會一遍又一遍地找到相同的元素。
我不知道您的應用程序是什么樣子,但也許您需要在 xpath 中使用${i}
:
Element Text Should Be xpath=//android.view.View[@index='${i}']//android.view.View[@text='Wiki']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.