python selenium 时间搜索框查询和日期大小比较
在做selenium自动化的时候遇到 时间搜索框查询(如下图)并比较查询结果是否在输入的时间之类。

首先,第一步要做的就是选择时间,并获取到所选时间的文本信息

如上图所示,获取到的时间搜索框并没有文本信息,如果直接用 .text 方法打印结果为空
所以采用get_attribute()的方法获取元素的属性,代码实现如下
def get_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: 传入的时间字符串的格式类型,
完整代码实现如下
def select_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)
return False
else:
logging.info('----------时间查询测试成功---------')
return True
python selenium 时间搜索框查询和日期大小比较的更多相关文章
- 实现DataTables搜索框查询结果高亮显示
DataTables是封装好的HTML表格插件,丰富了HTML表格的样式,提供了即时搜索.分页等多种表格高级功能.用户可以编写很少的代码(甚至只是使用官方的示例代码),做出一个漂亮的表格以展示数据.关 ...
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
- python selenium下拉框定位
一.前言 总结一下python+selenium select下拉选择框定位处理的两种方式,以备后续使用时查询: 二.直接定位(XPath) 使用Firebug找到需要定位到的元素,直接右键复制XPa ...
- select2搜索框查询加遍历
<div class="form-group"> <label class="control-label col-sm-1 no-padding-rig ...
- angular实现输入框输入添加 搜索框查询
!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g ...
- Python+selenium(警告框处理)
在Webdriver中处理JavaScript生成的alert.confirm.prompt,使用switch_to_alert()方法定位到alert.confirm.prompt,然后进行如下操作 ...
- Python Selenium百度搜索翻页查找文字
#!/usr/bin/python # -*- coding: utf- -*- from selenium import webdriver import time # browser = webd ...
- python selenium 下拉框
下拉框的处理如下代码: 定位select有很多种方式,这里介绍两种定位方式 1.二次定位 先定位到下拉框:self.dr.find_element_by_css_selector('#business ...
- Python+Selenium - Alert弹框
上面三种弹窗可以在浏览器的控制台做出效果,如下图 上面三种弹窗可以用alert方法处理 示例: #出现弹窗的操作xxxx# 切换al = driver.switch_to.alert# print(a ...
随机推荐
- promise解决微信小程序中的request回调地狱
//使用 request(url,methods ,data).then(res => { //服务器返回数据 console.log(res ); return request(url,met ...
- python求平均数及打印出低于平均数的值列表
刚学Python的时候还是要多动手进行一些小程序的编写,要持续不断的进行,知识才能掌握的牢.今天就讲一下Python怎么求平均数,及打印出低于平均数的数值列表 方法一: scores1 = [91, ...
- Python之list函数
- salesforce零基础学习(九十八)Salesforce Connect & External Object
本篇参考: https://trailhead.salesforce.com/en/content/learn/modules/lightning_connect https://help.sales ...
- 【Kata Daily 190910】Who likes it?(谁点了赞?)
题目: Description: You probably know the "like" system from Facebook and other pages. People ...
- Loadrunner11简单压测接口教程
一.需求 使用Loadrunner压测目标接口,要求支持1000并发数. 目标接口:https://www.xxx.com/digitaldata/api/signer/1.0/signerRegis ...
- TCP/IP协议与Socket
1.计算机网络体系结构分层 OSI 参考模型注重"通信协议必要的功能是什么", TCP/IP 则更强调"在计算机上实现协议应该开发哪种程序". 2.TCP/IP ...
- .NetCore Docker一次记录
1:项目添加docker支持 2:定位到项目主目录 按住shift,鼠标右键,打开powershell,输入命令 dotnet publish 此时会在目录 bin\Debug\netcoreapp2 ...
- 微软.net installer源码解析
微软源码地址 dotnet/install-scripts/blob/master/src/dotnet-install.ps1 代码 [string]$AzureFeed="htt ...
- spring源码概览
阅读spring源码需要具备的基本技能: 1,设计模式(工厂模式,单例模式,代理模式,模板模式,观察者模式,装饰器模式,适配器模式) 2,数据结构和算法(栈,队列,树以及一些基本的算法) 3,反射(如 ...