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 ...
随机推荐
- java-try catch中return在finally之前 还是之后执行
finally语句在return语句执行之后return返回之前执行的. finally块中的return语句会覆盖try块中的return返回. 如果finally语句中没有return语句覆盖返回 ...
- confluence 4.2 升级至 6.10.x 记录
confluence 4.2 升级至 6.10.x 记录 首先将线上环境中的 confluence 安装目录.数据目录以及数据库进行备份,相关信息如下: 安装目录:/opt/atlassian/con ...
- 走在深夜的小码农 Seventh Day
Css3 Seventh Day writer:late at night codepeasant 学习大纲: 1. 定位(position) 介绍 1.1 为什么使用定位 我们先来看一个效果,同时思 ...
- Java技术平台介绍
Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名.Java语言中的许多库类名称,多与咖啡有关, 如JavaBeans(咖啡豆).NetBeans(网络豆)以及ObjectB ...
- Luogu P6280 [USACO20OPEN]Exercise G
题意 定义一个长度为 \(n\) 的置换的步数为将 \(P=(1,2,\cdots,n)\) 在该置换操作下变回原样的最小次数. 求所有 \(K\) 的和,使得存在一个长度为 \(n\) 的置换使得其 ...
- sync_with_stdio(false)的副作用
sync_with_stdio()的一个特性 水一篇随笔 其实对于用快读的大佬来说没什么用,但还是提一下 ios::sync_with_stdio(false)用处是"关闭同步", ...
- Java自动化测试框架-02 - TestNG之理论到实践
TestNG,即Testing, NextGeneration,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集 ...
- python动态规划
动态规划: 动态规划表面上很难,其实存在很简单的套路:当求解的问题满足以下两个条件时, 就应该使用动态规划: 主问题的答案 包含了 可分解的子问题答案 (也就是说,问题可以被递归的思想求 ...
- Python替换字符串中的空格
这是来源剑指offer的第二题,直接调用replace函数进行空格替换即可. 当我又想试试挨个字符比较进行替换时程序报错了: 错误原因是在python中字符串是一个不可变的数据类型,如果进行替换字符可 ...
- 基于 .NET 的 FluentValidation 数据验证
学习地址:官方文档,更多更详细的内容可以看官方文档. FluentValidation 是一个基于 .NET 开发的验证框架,开源免费,而且优雅,支持链式操作,易于理解,功能完善,还是可与 MVC5. ...