簡體   English   中英

如何使用機器人框架從另一個日期中減去一個日期?

[英]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_formatConvert 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM