python selenium 日期控件定位
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python selenium 日期控件定位,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2079字,纯文字阅读大概需要3分钟。
内容图文
![python selenium 日期控件定位](/upload/InfoBanner/zyjiaocheng/617/3e9e2e68840c4221a9b04440ef203b08.jpg)
在做自动化时经常会遇到各种各样的时间选择框(如下图),那么如何去精准选择想要的时间呢?
如果需要一个一个去点击,那肯定非常不稳定,也很难去选择时间跨度大的日期和精准日期。
这个时候我们就需要用到万能的JS了,一般日期框都是只读属性,通过JS将只读属性去掉,就可以直接 send_keys()输入时间即可
这里给个示例
# js = "document.getElementById('txtBeginDate').removeAttribute('readonly')" # 1.原生js,移除属性 # js = "$('input[id=txtBeginDate]').removeAttr('readonly')" # 2.jQuery,移除属性 # js = "$('input[id=txtBeginDate]').attr('readonly',false)" # 3.jQuery,设置为false js = "$('input[id=txtBeginDate]').attr('readonly','')" # 4.jQuery,设置为空(同3) driver.execute_script(js) driver.find_element_by_id('txtBeginDate').send_keys('2016-08-24')
但是一般的日期输入框很少有ID属性,document一共有这几种查找方式(见下图),可以在console调试,如果能找到即可将只读属性去掉
但是如果通过以上方式都无法找到,该怎么处理呢?
我们可以通过 addAttribute 或者 setAttribute 给日期添加元素属性,再使用JS将只读属性去掉即可
def addAttribute(self, selector, attributeName, value): ''' 封装向页面标签添加新属性的方法 调用JS给页面标签添加新属性,arguments[0]~arguments[2]分别 会用后面的element,attributeName和value参数进行替换 添加新属性的JS代码语法为:element.attributeName=value 比如input.name='test' ''' ele = self.find_element(selector) self.driver.execute_script("arguments[0].%s=arguments[1]" % attributeName, ele, value) #补充说明 #ele:元素定位 #attributeName:设置属性名 #value:设置属性值
完整代码实现
def send_create_time(self):
"""输入创建时间"""
#给日期控件添加ID属性并移除只读属性
self.addAttribute(data['create_time'], 'id', 456789)
js = "document.getElementById('456789').removeAttribute('readonly')"
self.execute_script(js)
return self.find_element(data['create_time']).send_keys('2020/11/15 00:00:00 - 2020/12/15 00:00:00')
补充说明:
有些使用send_keys()输入时间但是提交请求的时候发现并没有传参时间,这个可能是输入的时间格式不对,可以在页面上手动调试,将只读属性去掉并发送请求,如果接口有传参说明可以。
不行的话可以先手动选择时间在复制粘贴即可
上图我输入非时间格式接口请求是没有传时间参数的,所以要保证传参正确
内容总结
以上是互联网集市为您收集整理的python selenium 日期控件定位全部内容,希望文章能够帮你解决python selenium 日期控件定位所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。