【问题标题】:Can't pass a Test Execution result to a variable in Robo Framework无法将测试执行结果传递给机器人框架中的变量
【发布时间】:2019-03-15 07:28:34
【问题描述】:

我将自动化测试的结果发布到离线论坛。在论坛帖子标题中包含 PASS/FAIL 会很好,但我在检索 ${TEST STATUS} 值时遇到了一些困难 - (显然硬编码值可以正常工作)。

我在 common-variables.robot 中定义如下:

${FORUM_TEST_RESULT}....${TEST STATUS}

然后在 publish-results.robot 上

Input Text....//*[@id="title"]....${FORUM_TEST_RESULT}

我得到的错误是:找不到变量 ${FORUM_TEST_RESULT}

我可以在这里看到:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface ${TEST STATUS} 只能用作 Teardown 的一部分。

我不确定如何在我的 RF 脚本的上下文中收集 ${TEST STATUS} 的值。

例如,我的脚本所做的最后一件事就是发布到论坛:

Input Text....//*[@id="title"]....${FORUM_TEST_RESULT}

但在此之前,我显然需要使用 ${TEST STATUS) 的值填充 ${FORUM_TEST_RESULT},而您只能在 Teardown 中获得该值?希望这是有道理的。

【问题讨论】:

  • 我正在处理的错误是:未找到变量 ${FORUM_TEST_RESULT},不是上面那个。
  • 你应该edit你的问题来澄清你的问题。

标签: selenium testing automated-tests robotframework selenium2library


【解决方案1】:

Input Text 是Selenium2Library 的关键字,它将给定的文本输入到网页的文本字段中。您需要先启动浏览器会话并打开正确的页面,然后可能等待元素变得可见,例如:

Open Browser    [URL of your site]
Wait Until Element Is Visible    //*[@id="title"]
Input Text    //*[@id="title"]     ${FORUM_TEST_RESULT}

如果您想检索页面中的文本(正如您的评论所建议的那样),那么您需要使用关键字Get Text,它返回由定位器标识的元素的文本。

Get Text    locator

【讨论】:

  • 谢谢,但我认为您误解了我的问题。我无法检索值 ${TEST STATUS}(自动变量)值。在测试结束时,最后阶段是在论坛上发布结果,我想得到这个值。
  • 那么也许您应该编辑您的问题以澄清。您正在使用 Selenium2Library 并获得异常。我解释了为什么会发生这个异常以及如何避免它。如果您因任何原因无法运行浏览器,则使用 Selenium2Library 是错误的工具。
  • 它完全是硬编码的,所以我认为它与元素可见性的浏览器会话没有任何关系。
  • 真的吗?您问题中的错误消息告诉我们什么? 我得到的错误是:ElementNotVisible Exception: Message: element not visible
  • 好的,我添加了您的代码,现在这是我原来的问题发生的有问题的错误:未找到变量 ${FORUM_TEST_RESULT}。我会更新这篇文章。
猜你喜欢
  • 2017-12-23
  • 1970-01-01
  • 2021-02-04
  • 2015-12-22
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
  • 2017-11-19
  • 2019-03-15
相关资源
最近更新 更多