我正在寻找另一种更聪明的方式来实现以下操作
***Keywords***
Insert Values
[Documentation] Keyword is used to insert value
${Status1} Run Keyword and Return Status Wait Until Element is Visible ${ONPDonorLocator} 1s
${Status2} Run Keyword and Return Status Wait Until Element is Visible ${CustomerScoreLocator} 1s
${Status3} Run Keyword and Return Status Wait Until Element is Visible ${ContractDurationLocator} 1s
${Status4} Run Keyword and Return Status Wait Until Element is Visible ${OptionsInstalledLocator} 1s
${Status5} Run Keyword and Return Status Wait Until Element is Visible ${OrderAddsDeletesLocator} 1s
${Status6} Run Keyword and Return Status Wait Until Element is Visible ${SiteCategoryLocator} 1s
Run Keyword If '${Status1}'=='True' Wait and Click ${ONPDonor} ${LocatorWaitTime}
Run Keyword If '${Status2}'=='True' Wait and Click ${CustomerScore} ${LocatorWaitTime}
Run Keyword If '${Status3}'=='True' Wait and Click ${ContractDuration} ${LocatorWaitTime}
Run Keyword If '${Status4}'=='True' Wait and Click ${OptionsInstalled} ${LocatorWaitTime}
Run Keyword If '${Status5}'=='True' Wait and Click ${OrderAddsDeletes} ${LocatorWaitTime}
Run Keyword If '${Status6}'=='True' Wait and Click ${SiteCategory} ${LocatorWaitTime}
预期:
是否可以单击具有'${Status}'=='True'
的定位器,而不是编写Status1
,Status2
,Status3
等?
我不想写我上面写的方式。明天,如果我不得不再检查几个定位器的状态,那么这些行将继续增加。
注意:我仍在学习,欢迎提出任何建议。
答案 0 :(得分:1)
是的,通过使用循环并仅存储可见的定位器;然后遍历存储的内容,然后单击它们:
${visible}= Create List
FOR ${locator} IN ${ONPDonorLocator} ${CustomerScoreLocator} # etc, the others
${Status} Run Keyword and Return Status Wait Until Element is Visible ${locator}
Run Keyword If ${Status} Append To List ${visible} ${locator}
END
FOR ${locator} IN @{visible}
Wait and Click ${locator}
END
当您有更多元素要等待可见性然后单击时,只需在第一个循环中添加它们即可。