【问题标题】:RobotFramework - get current DateRobotFramework - 获取当前日期
【发布时间】:2019-05-10 18:23:22
【问题描述】:

我需要测试当前日期是否显示在我的设备上,设备上的日期格式为Monday, September 9, 2018,但是当我尝试测试它时,我只能使用格式Monday, 09, 2018,这将导致测试失败月份日期中没有 0。

    page should contain element  ${DATE}
    ${DATE_MESSAGE}  get current date  result_format=%A, %d, %Y
    element should contain text  ${DATE}  ${DATE_MESSAGE}

如何更改robotframework中的格式来验证这个格式Monday, September 9, 2018.

错误 should have contained text 'Monday, 09, 2018' but its text was 'Monday, September 9, 2018'.

【问题讨论】:

  • 您想要哪种格式?你的问题似乎很模糊
  • @SidaraKEO 我已经更新了这个问题,抱歉误会了

标签: date format robotframework


【解决方案1】:

这可以更容易地完成

${date}=      获取当前日期      UTC      exclude_millis=yes
${convert}=      转换日期      ${date}      result_format=%a %B %d %H:%M:%S UTC %Y
记录     ${convert}      console=yes

(%a = f.e. 星期一
%A = f.e.星期一
%B = f.e.五月
%H:%M:%S - f.e. 13:04:09
UTC = f.e.需要部分字符串
%Y = 2019)

上面字符串的控制台输出会给出:

2019 年 5 月 10 日星期五 10:12:31 UTC

如果您想添加一定天数,请使用:

${date}=      获取当前日期      UTC      exclude_millis=yes
${plus14}=      添加截止日期      ${date}      14 天
${future}      转换日期      ${plus14}      result_format=%a %B %d %H:%M:%S UTC %Y
记录     ${future}     console=yes

输出将是:

2019 年 5 月 24 日星期五 10:12:31 UTC

【讨论】:

【解决方案2】:

类似的东西应该可以工作:

${now}    Evaluate    '{dt.day}/{dt.month}/{dt.year}'.format(dt=datetime.datetime.now())    modules=datetime

更新后:

${now}    Evaluate  '{dt:%A}, {dt:%B} {dt.day}, {dt.year}'.format(dt=datetime.datetime.now())    modules=datetime

【讨论】:

  • 抱歉,我的问题措辞有误,我添加了失败消息并更新了问题
  • 'Monday, 9, 2018' but its text was 'Monday, September 10, 2018'. 我收到此错误
【解决方案3】:

Robot Framework 内置了一个广泛的 DateTime 库(从 2.8.5 版开始)。

如果您能够导入该库,请在此处记录 (http://robotframework.org/robotframework/latest/libraries/DateTime.html)。您应该能够使用 Get Current Date 关键字。

这个关键字有一个参数,可以让你使用 Python 的日期形成格式来获取你需要的日期/时间格式。

【讨论】:

    猜你喜欢
    • 2014-09-14
    • 2019-07-15
    • 1970-01-01
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多