当前位置: 首页 > 知识库问答 >
问题:

机器人框架:如何让Selenium库中的等待关键字返回true或false

欧渝
2023-03-14

如果页面上存在元素,我想运行关键字。

我尝试使用Selenium库的等待页面包含元素关键字,但无论元素是否存在,它总是返回“无”。我尝试设置自定义错误,但这也不起作用:

${condition} =     Wait Until Page Contains Element    ${locator}    timeout=5   error=false
Run Keyword if  '${condition}'=='false'       click element  ${some_refreshButton_locator}

关键字click元素${locator}仅在我设置条件${condition}==“None”时运行

我做错什么了吗?我怎么能让Selenium库等到。。。关键字return true或false。

谢谢

共有2个答案

汪思博
2023-03-14

“运行关键字和返回状态”也可用于获取真/假状态,如下所示:

${condition} =     Run keyword And Return Status    Wait Until Page Contains Element    ${locator}    timeout=5   error=false
高砚
2023-03-14

等到页面包含元素时才返回任何内容,但若找不到元素,则会引发错误。一种解决方法是包装Run关键字并忽略其周围的错误。

*** Settings ***
Library    Selenium2Library

*** Test Cases ***
Test wait
    Open Browser        http://www.google.com/    gc
    ${result}    ${condition}=    Run Keyword And Ignore Error    Wait Until Page Contains    Stackoverflow    timeout=2   error=false
    Run Keyword if  '${condition}'=='false'       Log    clicking
    Close All Browsers
 类似资料:
  • 我是Robot框架的新手,致力于使用带有Selenium和java关键字的Robot框架。我知道RF是基于python的,但是,该项目要求使用java关键字。 我的想法是创建java函数和文本文件,然后使用:

  • 问题内容: 我希望我的活动显示一个屏幕3秒钟,然后返回上一个屏幕。但是当我使用 但不幸的是,这不起作用。这确实表明活动等待3秒钟然后返回。但是,我希望它在返回之前显示其内容。我该怎么做 ? 问题答案: 您应该删除 阻止ui线程的控件。您不应该阻止用户界面。您可以使用带有延迟的Handler postDelayed,然后使用startActivtiy。 要返回上一个活动,您可以致电。 另外,如果您需

  • 问题内容: 如何让selenium等待日历小部件的加载?现在,我只是在将测试用例导出到junit程序后进行操作。 问题答案: 我会用 这将一直等待,直到元素出现在DOM中为止。 如果您需要检查元素是否可见,则最好使用

  • 问题内容: 当使用简单的回调(例如下面的示例)时: 如何更改功能以使用异步/等待?具体来说,假设“ someEvent”被保证只能被调用一次,那么我希望函数测试是一个异步函数,该异步函数在执行回调之前不会返回,例如: 问题答案: 不是魔术。异步函数是可以为您解开Promises的函数,因此您需要返回一个Promise才能起作用。像这样: 然后 但这也是一个谎言,因为异步函数也返回Promises本

  • 使用以下示例中的简单回调时: 如何将函数更改为使用异步/等待?具体地说,假设某个事件保证被调用一次并且只有一次,我希望函数测试是一个异步函数,直到执行回调才返回,例如:

  • 问题内容: 我希望脚本等待用户按下任何键。 我怎么做? 问题答案: 在 Python 3中 使用: 在 Python 2中 使用: 不过,这仅等待用户按下Enter键。 可能要使用 msvcrt ((仅Windows / DOS)使用 msvcrt 模块可以访问Microsoft Visual C / C ++运行时库(MSVCRT)中的许多功能): 这应该等待按键。 附加信息: Python 3