python - 在 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)
解决方案
我假设你有使用日期字符串。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')
希望这可以帮助。
推荐阅读
- vb.net - 将字符 \u000d\u000a 替换为
VB.Net - javascript - javascript 通过 fetch 获取 Json 数据
- mysql - 一个订单中的多个产品续集
- reactjs - 从底部屏幕向上创建幻灯片反应原生
- html - SVG 如何翻译 SVG 路径并使其围绕自身旋转
- serial-port - 串口停止读取连续多包数据
- git - Azure DevOps:推送到远程仓库时出现 HTTP 503 curl 22 错误
- regex - 如何在颤振飞镖中加入两个或多个不同的正则表达式并匹配值
- javascript - 模块导出返回我一个函数
- arrays - 在集合 mongodb 中拆分数组