Robotframework:使用Get Current Date以特定格式在运行时获取日期

时间:2014-07-23 08:25:49

标签: date testing selenium-webdriver automation robotframework

我使用Get Current Date关键字以年 - 月 - 日格式返回日期。我使用此特定信息来确保帐户的创建的时间戳在自动化测试中是正确的。

问题是关键字无法识别,我的代码应该是正确的(它应该工作它应该以我希望的格式生成日期。

*** Keywords ***

Initialize Test Data
    ${DATE}=    Get Current Date    result_format=timestamp
    ${MYNUM}=    faker.Random Int

    Set Suite Variable  ${MYNUM}
    Set Suite Variable  ${DATE}

为什么我会收到错误No keyword with name 'Get Current Date' found.

提前致谢。

3 个答案:

答案 0 :(得分:5)

标准RF库中是否存在关键字获取当前日期?有一个名为 Get Time 的内置关键字。文档说明了如何格式化输出。要使用获取当前日期,您需要先导入 DateTime 库。

更新: 适用于我的RF脚本示例:

*** Settings ***
Library           DateTime

*** Test Cases ***
datatimetest
   ${d}=    get time
   log    {d}
   ${d}=    Get Current Date    result_format=%Y-%m-%d
   log    {d}
   ${d} =    Add Time To Date    2014-05-28 12:05:03.111    7 days
   log    {d}

请记住,DateTime是一个新库,因此如果你有旧版本的Robot Framework,你需要安装库或升级RF。

答案 1 :(得分:1)

我在Pyton中使用RF,默认情况下我的IDE会看到Python DateTime库。 尝试使用完整路径:

Library           robot.libraries.DateTime

robot.libraries.DateTime

答案 2 :(得分:0)

您还可以根据需要设置时间格式。参见this answer。它提供格式建议。您可以像在

中那样使用Python DateTime函数
   ${now}    Evaluate    '{dt.day}/{dt.month}/{dt.year}'.format(dt=datetime.datetime.now())    modules=datetime
   Log   ${now}
   Log to Console   now time 1: ${now}
   ${now}    Evaluate  '{dt:%A}, {dt:%B} {dt.day}, {dt.year}'.format(dt=datetime.datetime.now())    modules=datetime
   Log   ${now}
   Log to Console   now time 2: ${now}