Selenium python时间控件输入问题解决方案


Posted in Python onJuly 22, 2020

对于时间的选择问题,查到的大部分为两种情况:

1.存在readonly属性的

Selenium python时间控件输入问题解决方案

2.没有readonly属性的

可直接赋值send_keys()

测试用例中刚好是没有readonly属性的

Selenium python时间控件输入问题解决方案

且定位不到弹窗(通过查资料可知道,直接给时间控件input属性赋值是最快捷的方法)

一开始都是奔着情况二去处理的,但一直运行不成功,总是在赋值的地方出错,反复确认了不存在iFrame,句柄也都是一样的,时间控件为input属性,且是可编辑属性,但就是总报错。

判断是否可编辑的指令为:

flag=timeInput.is_enabled()
print("时间控件是否可编辑: "+str(flag))

运行结果如下:

Selenium python时间控件输入问题解决方案

后来尝试用情况一的方法进行处理,但因为查到的资料里,赋值语句有点问题(可能不适合自己的用例),由于一直没考虑到查到的语句本身有问题,导致最后还是卡死在赋值上面。还好在别的地方看到正确的赋值语句,修改了赋值语句后就正常了

具体分解步骤如下:

步骤一:修改readonly属性

#下面四种方法,任选一种即可

js = "document.getElementById('dateRange_w3').removeAttribute('readonly')" # 1.原生js,移除属性
#js = "$('input[id=dateRange_w3]').removeAttr('readonly')" # 2.jQuery,移除属性
#js = "$('input[id=dateRange_w3]').attr('readonly',false)" # 3.jQuery,设置为false
#js="$(input[id=dateRange_w3]).attr('readonly','')"

步骤二:执行

driver.execute_script(js)

步骤三:清空时间输入框: clear()

步骤四:赋值

jsValue= 'document.getElementById("dateRange_w3").value="2018-11-12 至 2018-11-13"'[/code][code]driver.execute_script(jsValue)

完整流程如下(已测试通过的,为了方便调用,部分有做了封装):

Selenium python时间控件输入问题解决方案

Selenium python时间控件输入问题解决方案

运行结果可看出,时间可正常输入

Selenium python时间控件输入问题解决方案

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python打开网页和暂停实例
Sep 30 Python
python实现基于SVM手写数字识别功能
May 27 Python
django中send_mail功能实现详解
Feb 06 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
深入浅析Python传值与传址
Jul 10 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
tensorflow实现简单逻辑回归
Sep 07 Python
python requests post多层字典的方法
Dec 27 Python
python单例模式的多种实现方法
Jul 26 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
Nov 28 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 Python
Python基于字典实现switch case函数调用
Jul 22 #Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 #Python
使用python批量修改XML文件中图像的depth值
Jul 22 #Python
Python持续监听文件变化代码实例
Jul 22 #Python
Python不支持 i ++ 语法的原因解析
Jul 22 #Python
基于selenium及python实现下拉选项定位select
Jul 22 #Python
Python实现手绘图效果实例分享
Jul 22 #Python
You might like
虫族 Zerg 魔法科技
2020/03/14 星际争霸
php daodb插入、更新与删除数据
2009/03/19 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
js 巧妙去除数组中的重复项
2010/01/25 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
jQuery的deferred对象使用详解
2011/08/20 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
Augularjs-起步详解
2016/07/08 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
JS前端加密算法示例
2016/12/22 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
深入分析JavaScript 事件循环(Event Loop)
2020/06/19 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python实现简单的计时器功能函数
2015/03/14 Python
Python中的高级数据结构详解
2015/03/27 Python
Python中list初始化方法示例
2016/09/18 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
Django框架 querySet功能解析
2019/09/04 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
详解python with 上下文管理器
2020/09/02 Python
python 模拟登陆github的示例
2020/12/04 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
后勤自我鉴定
2013/10/13 职场文书
商务日语毕业生自荐信
2013/11/23 职场文书
财产保全担保书
2015/01/20 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书