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常用正则表达式符号浅析
Aug 13 Python
python有证书的加密解密实现方法
Nov 19 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
关于numpy中np.nonzero()函数用法的详解
Feb 07 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
python生成n个元素的全组合方法
Nov 13 Python
使用GitHub和Python实现持续部署的方法
May 09 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 Python
python 插入日期数据到Oracle实例
Mar 02 Python
Python数据结构dict常用操作代码实例
Mar 12 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 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
无数据库的详细域名查询程序PHP版(4)
2006/10/09 PHP
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
js Flash插入函数免激活代码
2009/03/31 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
python映射列表实例分析
2015/01/26 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
python发送HTTP请求的方法小结
2015/07/08 Python
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
迅雷Cued工作心得体会
2014/01/27 职场文书
总经理助理的职责
2014/03/14 职场文书
2014年质检工作总结
2014/11/26 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
小学运动会报道稿
2015/07/22 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
合作合同协议书
2016/03/21 职场文书
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python
Python日志模块logging用法
2022/06/05 Python
nginx访问报403错误的几种情况详解
2022/07/23 Servers