【问题标题】:For loop to check for a xpath in Robot FrameworkFor循环检查Robot Framework中的xpath
【发布时间】:2015-09-12 18:54:56
【问题描述】:

我是机器人框架的新手。我想实现一个 For 循环来检查页面上的 xpath。它应该等待 xpath 10 秒,如果 xpath 仍然不存在则再次等待 10 秒,如果 xpath 出现则退出循环并继续前进。等待元素总共需要 10 次迭代。 我正在尝试以下方法:

|| ${count}= | Get Matching Xpath Count | xpath=//*[.='Continue'] |
|| :FOR       | ${loopIndex}            | IN RANGE                | 10
              | Wait Until Page Contains Element | xpath=//*[.='Continue'] |    10
              | Exit For Loop If        |   ${count}>0  
|| Log          | Got out of loop

我现在得到的错误是: FAIL : 元素 'xpath=//*[.='Continue']' 未在 10 秒内出现。

如果我遗漏了一些信息,请告诉我。我正在使用 RIDE 进行编辑。

编辑: 我必须循环执行。我正在寻求这方面的帮助,以便我可以在我工作的其他地方使用这个循环示例。

【问题讨论】:

    标签: for-loop robotframework


    【解决方案1】:

    您可以使用 FOR 循环或“等待关键字成功”来实现此目的。

    查看两个示例:

    *** Test Cases ***
    test with for loop
      :FOR  ${loopIndex}  IN RANGE  10
      \  ${element_is_here} =  Run Keyword and return status  Page should contain element  xpath=//*[.='Continue']
      \  Exit For Loop If  ${element_is_here}
      \  sleep  10s
      Log  I found the element
    
    test with WUKS
      wait until keyword succeeds  10s  10s  Page should contain element  xpath=//*[.='Continue']
      Log  I found the element
    

    【讨论】:

      【解决方案2】:

      关键字失败,因此测试用例失败。您需要做的不是使用循环而只需等待 100 秒,或者使用 Run keyword and ignore errorRun keyword and continue on failure 之类的东西(例如:Run keyword and ignore error | Wait until page contains element | ...

      【讨论】:

      • 感谢您的回答,但我想在循环中验证这一点,我想检查 10 秒,如果 xpath 尚未出现,则再等待 10 秒。我可以在其他地方重用循环,但有一些不同,这就是我在这里问这个问题的原因。请帮忙。
      猜你喜欢
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多