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 07 Python
python执行子进程实现进程间通信的方法
Jun 02 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
python+pygame简单画板实现代码实例
Dec 13 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
Django stark组件使用及原理详解
Aug 22 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
Python 词典(Dict) 加载与保存示例
Dec 06 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
用 python 进行微信好友信息分析
Nov 28 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
一个更简单的无限级分类菜单代码
2007/01/16 PHP
php获取地址栏信息的代码
2008/10/08 PHP
php session处理的定制
2009/03/16 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
在网页里看flash的trace数据的js类
2009/01/10 Javascript
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
一秒学会微信小程序制作table表格
2019/02/14 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
Python os模块介绍
2014/11/30 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
Python用input输入列表的实例代码
2020/02/07 Python
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
通息工程毕业生自荐信
2013/10/16 职场文书
十岁生日家长答谢词
2014/01/17 职场文书
技能比武方案
2014/05/21 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
实训报告范文大全
2014/11/04 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技