首页 > 解决方案 > 在 python selenium 中断言和验证日期格式 DD-MM-YYYY

问题描述

在此处输入图像描述我正在尝试使用 python selenium 自动化,任务是

(1)。验证是否显示日期

(2)。如果显示 - 打印该日期

(3)。最后断言并验证显示的日期是否是预期的正确格式(即)DD-MM-YYYY。

有时我们发现一旦提交表单,添加的字段标签日期显示格式为 MM-DD-YYYY 但根据要求它应该是 DD-MM-YYYY,所以我们决定自动化这个测试,这样一旦提交我们想要检查以上 3 点,我编写了以下代码,我能够解决第 1 点和第 2 点,但在第 3 点上苦苦挣扎

“第 1 步”:我已经识别出元素的 xpath 并将其存储在名为“元素”的变量中

'第 2 步':我使用了长度为 'len' 函数的 'If 语句' - 作为验证日期是否存在/显示的模式

'step 3': 如果显示成功打印日期

'第 4 步':最后,我如何验证显示的日期是否符合我们预期的格式

我编写的以下代码/屏幕截图供参考

    element = driver.find_element_by_xpath('//*@id="incDetailTab"]/div[2]/div/div/div/div[2]/div/div/p[7]/strong')
    assert driver.find_element_by_xpath('//*@id="incDetailTab"]/div[2]/div/div/div/div[2]/div/div/p[7]/strong')

    if (len(element.text) == 0):
        print("Yes")
    else:
        print("No")

    print(element.text)

标签: pythonseleniumdatexpathautomation

解决方案


我假设你有使用日期字符串。element.text但是你可以尝试下面的函数来检查日期格式。

import datetime

def checkvaliddateformat(datestr):

  day,month,year = datestr.split('-')
  isValidDate = True
  try :
       datetime.datetime(int(year),int(month),int(day))
  except ValueError :
       isValidDate = False

  if(isValidDate) :
      print ("date is valid format(DD-MM-YYY) : "+datestr)
  else :
      print ("date is not valid format(DD-MM-YYY) : " +datestr)

checkvaliddateformat('30-12-2020')
checkvaliddateformat('12-30-2020')

希望这可以帮助。


推荐阅读