[英]How to subtract a date from another date using Robot Framework?
我正在使用 Robot Framework Keyword Subtract Date From Date
來測試日期是否在 2 個日期之間(例如 11/06/2020 介於 07/06/2020 和 20/06/2020 之間),但我收到錯誤在我的日志文件中ValueError: Invalid timestamp
。 日期是從Span Text
中提取的String
,我將其轉換為日期這是我的代碼:
${date}= Get Current Date result_format=datetime
${postdate}= Get Text xpath://app-post[1]//div[1]//div[1]//div[1]//div[2]//div[1]//div[2]//div[1]//div[2]//span[2]
${postdate}= Convert Date ${postdate} date_format=%d/%m/%y
${date}= Convert Date ${date} result_format=%d/%m/%y
${temp} = Subtract Date From Date ${postdate} ${date}
Should Be True ${temp}>=0
問題是您沒有遵循此處提到的關鍵字Subtract Date From Date
的允許格式: https://robotframework.org/robotframework/latest/libraries/DateTime.html#Date%20formats
%y
會給你20
,但這顯然是不夠的。 如果我將其更改為%Y
,它將為我提供當年的2020
年,並且關鍵字Subtract Date From Date
不再抱怨時間戳無效。 您還需要將其更改為date_format=%Y/%m/%d
之類的內容,即更改%Y
、 %m
和%d
的順序。
編輯:
我現在可以看到您也在使用date_format以及result_format和Convert Date
。 這是您的代碼中的另一個錯誤,您需要同時使用result_format
。
編輯2:
完整的工作示例:
(而且您在這里沒有使用 BuiltIn 庫,這些日期時間關鍵字來自 DateTime 庫)
以下腳本有效(使用 static PAST_DATE 檢查示例運行):
${date}= Set Variable 21
${month}= Set Variable 12
${year}= Set Variable 2019
${PAST_DATE}= BuiltIn.Catenate SEPARATOR=/ ${year} ${month} ${date}
Log ${PAST_DATE}
${CURRENT_DATE}= Get Current Date result_format=%Y/%m/%d
Log ${CURRENT_DATE}
${DIFFERNCE_IN_DAYS}= Subtract Date from Date ${CURRENT_DATE} ${PAST_DATE} verbose
Log ${DIFFERNCE_IN_DAYS}
@{total_days}= Split String ${DIFFERNCE_IN_DAYS}
${final_days}= Set Variable ${total_days[0]}
Log ${final_days}
Should be true ${final_days} >= 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.