我正在尝试编写一个检查页面状态的测试套件。状态显示为文本。要查看任何状态更改,首先需要刷新页面。通常情况下,状态变化会在一分钟内发生。
因此,如果手动完成,我将不得不:
两个半工作的例子是:
如果我登陆页面时状态为“Good to go”,则效果很好。如果不是,则页面重新加载10次,如果状态在此期间变为“Good to go”,则忽略它并继续重新加载页面。
${Status} Get Text xpath=//*[@id="status"]
:FOR ${CheckStatus} IN RANGE 10
\ ${StatusVisible} Run Keyword And Return Status Page Should Contain Element ${Status}
\ Run Keyword If '${Status}'=='Good to go' Exit For Loop ELSE Reload Page
运行时会返回此错误:
关键字'BuiltIn.Continue For Loop如果'预期1参数,得到2
${Status} Get Text xpath=//*[@id="status"]
:FOR ${CheckStatus} IN RANGE 10
\ ${StatusVisible} Run Keyword And Return Status Page Should Contain Element ${Status}
\ Continue For Loop If '${Status}'!=='Good to go' Reload Page
\ Exit For Loop If '${Status}'=='Good to go'
我真的很感激一些帮助。
答案 0 :(得分:2)
Continue For Loop If
只接受一个参数,但您提供了2。
如果必须重新加载页面以检查状态是否已更改为所需状态,则可以执行以下操作:
:FOR ${CheckStatus} IN RANGE 10
\ ${Status} Get Text xpath=//*[@id="status"]
\ Page Should Contain ${Status} # Check that the element exists
\ Exit For Loop If '${Status}'=='Good to go' # Break out of loop if status is expected value
\ Run Keyword Reload Page # Otherwise, reload and loop again
答案 1 :(得分:0)
在第二个示例中,关键字“Continue For Loop If”应该只包含一个参数。您应该删除“重新加载页面”。这就是你得到那个错误的原因
-g