RobotFramework - 获取当前日期

3

我需要测试当前日期是否显示在我的设备上,设备上的日期格式为2018年9月9日 星期一,但是当我尝试测试时,我只能使用2018年9月9日这种格式,因为月份中没有0,所以测试会失败。

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

如何在robotframework中更改格式以验证此格式2018年9月9日星期一。

错误 应包含文本“2018年9月9日星期一”,但其文本为“Monday,September 9,2018”。


你想要哪种格式?你的问题看起来很模糊。 - Sidara KEO
@SidaraKEO,我已经更新了问题,对误解感到抱歉。 - user10111081
3个回答

5

这可以更容易地完成。

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

(%a = 例如星期一
%A = 例如Monday
%B = 例如五月
%H:%M:%S = 例如13:04:09
UTC = 字符串中的一部分
%Y = 2019)

上述字符串在控制台上的输出将会是:

Fri May 10 10:12:31 UTC 2019

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

${date}= 获取当前日期 UTC exclude_millis=yes
${plus14}= 增加时间至日期 ${date} 14 days
${future} 转换日期 ${plus14} result_format=%a %B %d %H:%M:%S UTC %Y
Log ${future} console=yes

输出将会是:

Fri May 24 10:12:31 UTC 2019


请查看如何正确格式化代码,您不必放置所有这些  - barbsan

3

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

${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

抱歉,我之前表述不清楚了。我已经添加了失败信息并更新了问题。 - user10111081
“Monday, 9, 2018”但其文本应为“Monday, September 10, 2018”。我遇到了这个错误。 - user10111081

1

Robot Framework内置了一个广泛的DateTime库(自2.8.5版本以来)。

如果您能够导入该库,可以在此处查看文档(http://robotframework.org/robotframework/latest/libraries/DateTime.html)。您应该能够使用“获取当前日期”关键字。

此关键字有一个参数,允许您使用Python的日期格式化格式来获取所需的日期/时间格式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接