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程序
Apr 04 Python
python笔记(2)
Oct 24 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
python实现的AES双向对称加密解密与用法分析
May 02 Python
Python中的函数作用域
May 07 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
python机器人运动范围问题的解答
Apr 29 Python
django从后台返回html代码的实例
Mar 11 Python
python import 上级目录的导入
Nov 03 Python
python requests库的使用
Jan 06 Python
Python爬虫基础讲解之请求
May 13 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 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
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
jquery 使用点滴函数代码
2011/05/20 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
理解python正则表达式
2016/01/15 Python
python读取几个G的csv文件方法
2019/01/07 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
2019/04/11 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
python 多进程队列数据处理详解
2019/12/23 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
大学在校生求职信范文
2013/11/21 职场文书
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
花田少年史观后感
2015/06/16 职场文书
委托收款证明
2015/06/23 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python
MySQL分区以及建索引的方法总结
2022/04/13 MySQL
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android