Selenium 时间搜索框查询和日期大小比较

韩韩韩韩兵·2021-01-07 19:09
12

编者按:本文来自微信公众号“51Testing软件测试网”(ID:testing51testing),作者:叶先生啊,36氪经授权发布。

在做Selenium自动化的时候,会遇到时间搜索框查询(如下图)并比较查询结果是否在输入的时间之类的问题。 

要想解决这个问题,首先,第一步要做的就是选择时间,并获取到所选时间的文本信息。

如上图所示,获取到的时间搜索框并没有文本信息,如果直接用 .text 方法打印结果为空。

所以采用get_attribute()的方法获取元素的属性,代码实现如下:






  • defget_element_attribute(self, selector: str, value='value') -> str:"""获取元素属性"""ele = self.find_element(selector)return ele.get_attribute(value)


(左右滑动查看完整代码)

· selector:元素定位信息

· value:需要获取的属性,默认为value

获取到搜索时间属性后,我们打印结果为:2020/10/27 00:00:00 - 2020/11/26 00:00:00 ,类型为str

此时需要使用 split() 方法把结果拆分为单个日期并使用 datetime.datetime.strptime(date_string, format) 方法转换成日期类型:

· date_string:时间字符串

· format:传入的时间字符串的格式类型,

完整代码实现如下:




























  • defselect_time(self):"""时间查询"""self.get_high_class()[0].click()self.get_date().click()self.get_days30().click()self.get_date_confirm().click()time.sleep(0.5)#获取输入的时间并转换成date类型timevalue = self.get_time_value()str_start_time = timevalue.split('-')[0].strip()str_end_time = timevalue.split('-')[1].strip()logging.info(timevalue)logging.info(str_start_time)logging.info(str_end_time)start_time = datetime.datetime.strptime(str_start_time, '%Y/%m/%d %H:%M:%S')end_time = datetime.datetime.strptime(str_end_time, '%Y/%m/%d %H:%M:%S')self.get_select()[0].click()time.sleep(2)time_text = self.get_date_text()for i in time_text:result_time = datetime.datetime.strptime(i.text, '%Y/%m/%d %H:%M:%S')if start_time >= result_time or end_time <= result_time:logging.error('----------时间查询异常,异常时间 %s ---------' % i.text)returnFalselogging.info('----------时间查询测试成功---------')returnTrue


(向右滑动查看完整代码)

链接:https://www.cnblogs.com/5566yesongqiao/p/14043731.html

本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除

推荐阅读

点击阅读☞Selenium实现分布式执行?靠的就是它!

点击阅读☞Selenium用倦了?来试试Seldom吧!

点击阅读☞最喜欢Selenium Web自动化实践案例了,跟着敲代码不香吗

点击阅读☞双剑合璧!利用Selenium调用JS代码

点击阅读☞使用CentOS 命令Selenium自动测试

戳“阅读原文”一起来充电吧!

+1
0

好文章,需要你的鼓励

参与评论
评论千万条,友善第一条
后参与讨论
提交评论0/1000

下一篇

奇怪的JMeter用法又增加啦~

2021-01-07

36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

推送和解读前沿、有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚焦全球优秀创业者,项目融资率接近97%,领跑行业