selenium 时间日期控件的处理

今天在写自动化测试脚本的时候,出现了一个时间选项框,类似于这样:
这里写图片描述

这可难倒我了,难道要我去研究怎么去控制时间吗?额~~~估计很难。
网上查了一下,还真是有些人也遇到了这个问题。

当然也可能遇到难点的,像这样:
这里写图片描述

当然,也不排除会遇到变态的,像这样:
这里写图片描述

呵呵,真要一个个想着怎么去选择,简直是非人类干的事!

那么该怎么办?

其实很简单,我们不去搞时间日期空间,我们把它当成一个普通的input框处理就好了!

但是,很多此类型input框都是禁止手动输入的,怎么办?

很简单,用js把禁止输入的readonly属性干掉就好了。

#coding:utf-8
from selenium import webdriver
import time
driver = webdriver.Chrome()

driver.get("http://172.16.10.65/sys/enterprise/person/course/0")
js = "document.getElementById('startTime').removeAttribute('readonly')"  # 1.原生js,移除属性
# js = "$('input[id=startTime]').removeAttr('readonly')"  # 2.jQuery,移除属性
# js = "$('input[id=startTime]').attr('readonly',false)"  # 3.jQuery,设置为false
# js = "$('input[id=startTime]').attr('readonly','')"  # 4.jQuery,设置为空(同3)

driver.execute_script(js)
#开始时间
driver.find_element_by_id("startTime").click()
driver.find_element_by_id("startTime").send_keys("2017-07-05")

看,我一下子给了你四种写法。当然你去选也没有问题,就是一堆div、ul、li,但是我想说对于日期时间控件,认真你就输了,绕过去才是真理,就像验证码一样,这个东西去深究,一点意义也没有嘛,所以这里就不推荐也不写这种方法的示例了。

当然,这里还得说一下,有人说他遇到的日期时间框没有id、name,这里提醒一下,这就是普通的input框,定位方法太多了,class、tag name、xpath、css,总有一种适合你。同时友情提醒一下:注意时刻提防iframe!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值