在做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 时间搜索框查询和日期大小比较的更多相关文章

  1. 实现DataTables搜索框查询结果高亮显示

    DataTables是封装好的HTML表格插件,丰富了HTML表格的样式,提供了即时搜索.分页等多种表格高级功能.用户可以编写很少的代码(甚至只是使用官方的示例代码),做出一个漂亮的表格以展示数据.关 ...

  2. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

    C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...

  3. python selenium下拉框定位

    一.前言 总结一下python+selenium select下拉选择框定位处理的两种方式,以备后续使用时查询: 二.直接定位(XPath) 使用Firebug找到需要定位到的元素,直接右键复制XPa ...

  4. select2搜索框查询加遍历

    <div class="form-group"> <label class="control-label col-sm-1 no-padding-rig ...

  5. angular实现输入框输入添加 搜索框查询

    !DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g ...

  6. Python+selenium(警告框处理)

    在Webdriver中处理JavaScript生成的alert.confirm.prompt,使用switch_to_alert()方法定位到alert.confirm.prompt,然后进行如下操作 ...

  7. Python Selenium百度搜索翻页查找文字

    #!/usr/bin/python # -*- coding: utf- -*- from selenium import webdriver import time # browser = webd ...

  8. python selenium 下拉框

    下拉框的处理如下代码: 定位select有很多种方式,这里介绍两种定位方式 1.二次定位 先定位到下拉框:self.dr.find_element_by_css_selector('#business ...

  9. Python+Selenium - Alert弹框

    上面三种弹窗可以在浏览器的控制台做出效果,如下图 上面三种弹窗可以用alert方法处理 示例: #出现弹窗的操作xxxx# 切换al = driver.switch_to.alert# print(a ...

随机推荐

  1. 循序渐进VUE+Element 前端应用开发(24)--- 修改密码的前端界面和ABP后端设置处理

    用户在系统登录后,一般会提供一个入口给当前用户更改当前的密码,其实更改密码操作是很简单的一个处理,不过本篇随笔主要是介绍结合前后端来实现这个操作,后端是基于ABP框架的,需要对密码的安全性进行一个设置 ...

  2. Visual Studio 2017 创建Winfrom工程

    1.打开Visual Studio 2017,出现界面点击-创建新项目 2.选择-Window桌面,选择windows 窗体应用(.NET Framework) 3.完成窗体程序创建,可在左边工具栏里 ...

  3. Flink的DataSource三部曲之一:直接API

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. fasd

    基本排序算法 冒泡排序 没什么可说的, 改进方法就是加一个标志位防止有序后重复遍历. 由于需要遍历两次, 所以时间复杂度O(N^2) 传送门 --> 冒泡排序 选择排序 外层从0开始默认oute ...

  5. How to use vscode to build a springboot project

    How to use vscode to build a springboot project 首先截图一个springboot官网的一个教程说明截图.可以根据这里的指南去创建一个HelloWorld ...

  6. ajax 加载数据前的刷新动画

    $(document).ready(function(){     $.ajax({        type:"get",        cache:false,        u ...

  7. Thinkphp3.2 cms之分类管理

    四.分类管理 <?php namespace Admin\Controller; use Think\Controller; class CateController extends Contr ...

  8. https中引入http资源资源所导致的问题

    问题描述 因为公司要求所有生产环境为了安全性需求,全部都走https, 并且在Nginx里面加入了Content-Security-Policy "upgrade-insecure-requ ...

  9. leetcode70word-search

    题目描述 给出一个二维字符数组和一个单词,判断单词是否在数组中出现, 单词由相邻单元格的字母连接而成,相邻单元指的是上下左右相邻.同一单元格的字母不能多次使用. 例如: 给出的字符数组= [↵ [&q ...

  10. Cacti如何实现电话告警

    Cacti是一套基于PHP,MySQL,SNMP及RRD Tool开发的网络流量监测图形分析工具.Cacti提供了一个快速轮询器,高级图表模板,多种数据采集方法和用户管理功能.所有这一切都被包装在一个 ...