【问题标题】:Element not visible sometimes with Robot Framework有时使用 Robot Framework 时元素不可见
【发布时间】:2015-10-24 10:32:02
【问题描述】:

我是第一次使用 Robot FW,但遇到了一个问题——其中一个测试用例需要打开一个模态确认对话框,然后按下“删除”按钮。测试用例的关键字如下:

Delete Test Data
    [Arguments]    ${name}  
    Wait Until Element Is Visible    xpath=//tr[@item_name='${name}']  
    Click Button    xpath=//tr[@item_name='${name}']//button[@class='btn btn-sm btn-danger']
    Wait Until Element Is Visible    id=deleteItem    timeout=10
    Click Button    Delete    
    Wait Until Element Is Not Visible    xpath=//tr[@item_name='${name}']

Wait Until Element Is Visible id=deleteItem timeout=10 行导致了所有问题。有时元素在时间限制内可见,有时则不可见。我将超时时间增加到 10 秒,但它并没有解决问题。我怎样才能让对话框每次都出现而不会失败?任何帮助表示赞赏,谢谢!

【问题讨论】:

  • 您是否验证过该按钮实际上是否可见?您确定这不是您正在测试的代码的错误吗?当关键字失败时,您会得到屏幕截图吗?你能看到屏幕截图中的按钮吗?
  • 这就是问题所在,对话框应该作为循环的一部分显示 3 次。它显示第一次,但第二次挂起,但只是有时。
  • 测试失败时截图不显示对话框。
  • 我不确定我是否理解您的回答。如果屏幕截图没有显示对话框,并且您正在测试对话框是否可见,那么测试是否正常运行?是说不可见,视觉上不可见?
  • 但它应该是可见的。有时是,有时不是。这有时会导致测试失败。

标签: robotframework


【解决方案1】:

我的方法是将“等待元素可见”更改为Wait Until Page Contains Element,如下所示..

${check_element}=  Run Keyword and Return Status   Wait Until Page Contains Element    locator    10s
Run Keyword If      '${check_element}' == 'True'     Click Element  locator

更改为该关键字的原因是,有时,元素已经加载并在 DOM 或页面中可用,但可见性是隐藏的。这种断断续续的怪事有时会发生在我身上。

【讨论】:

  • 为我工作!使用Wait Until Page Contains ElementWait Until Page Contains 对我来说每次都不会失败,有头无头。
【解决方案2】:

我也遇到过同样的失败。

我可以通过使用“等待关键字成功”关键字来解决这个问题。

“Wait Until Keyword Succeeds”关键字,检查等待条件并反复重试,直到条件通过或超时期限到期。

例如

Wait Until Keyword Succeeds    1 min    1 sec    Element Should Be Visible    xpath=//input[@id='aName']

【讨论】:

    【解决方案3】:

    尝试使用等待元素可点击,因为它是一个按钮,它应该可以解决您的问题。

    所以,应该是这样的

    Wait Until Element Is Clickable deleteItem timeout=10

    【讨论】:

    • @PetrBečka 此关键字存在于 RobotFramework 中,问题与此相关,而不是硒。
    猜你喜欢
    • 2018-12-03
    • 2015-08-17
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2019-05-15
    • 2019-03-22
    • 1970-01-01
    相关资源
    最近更新 更多