测试必须在时间、质量和成本之间获取一个平衡点,这是测试策略和测试设计的价值体现。

2.23 js处理日历控件(修改readonly属性)

上一篇 / 下一篇  2018-06-12 10:54:39 / 个人分类:Python+Selenium2 WebDriver API

2.23 js处理日历控件(修改readonly属性)

51Testing软件测试网'AY|!U6GA2kp

前言51Testing软件测试网^ V)R9o gM\Rs
    日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题。51Testing软件测试网tQ8e1T)Lz"xRO/s
    基本思路:先用js去掉readonly属性,然后直接输入日期文本内容51Testing软件测试网3n~+juIn
一、日历控件51Testing软件测试网R*aP-X*u0a5R+mV%MY7S
    1.打开12306的车票查询界面,在出发日期输入框无法直接输入时间
xA6b"G4U(p)m0    2.常规思路是点开日历控件弹出框,从日历控件上点日期,这样操作比较烦躁,并且我们测试的重点不在日历控件上,只是想输入个时间,做下一步的操作51Testing软件测试网 M3pH'Dk!oG
    3.用firebug查看输入框的属性:readonly="readonly",如下:51Testing软件测试网R-JU2B ti _

<inputid="train_date"class="inp-txt"type="text"value=""name="leftTicketDTO.train_date"autocomplete="off"maxlength="10"readonly="readonly">
51Testing软件测试网JvTM\8N"H9I

6tUiQ:Z,yl yTv051Testing软件测试网"m'm,`4? M F

 

TFr2fFQ2ac0

/zHB_$},L%m0 二、去掉readonly属性

;Zp6k&_wS051Testing软件测试网$H2Q$e*w,}*Cc"b

    1.很明显这种元素的属性是readonly,输入框是无法直接输入的,这时候需要先去掉元素的readonly属性,然后就可以输入啦。

@;q:v7R G0

vx MW s_['}%~$P&Jv0    2.点左下角firebug的“编辑按钮”,找到对应元素,直接删除readonly="readonly",然后回车。51Testing软件测试网-NBf Q@B?-l

D\N/X;Ic&@%u`0    3.在页面出发日位置输入:yoyoketang 试试,嘿嘿,有没有发现可以输入成功。当然这里只是为了验证可以输入内容,测试时候还是输入测试的日期。51Testing软件测试网0V.E6sk[l%@hq w

51Testing软件测试网 }8LR$^xA:y

{5s*a$k\ ^m051Testing软件测试网 y$k2Cb j)|-TMD5\)h

三、用js去掉readonly属性
;@1m%wo5Xa0    1.用js去掉元素属性基本思路:先定位到元素,然后用removeAttribute("readonly")方法删除属性。
MLu/iEH0    2.出发日元素id为:train_date,对应js代码为:'document.getElementById("train_date").removeAttribute("readonly");'51Testing软件测试网a/P/B&o~|cv

?3P:` O\CY9u0

&Z rk9B7C}}4BD051Testing软件测试网 vtk `FX [+U*X?$Q

四、输入日期
qE)e7GOYo0    1.输入日期前,一定要先清空文本,要不然无法输入成功的。51Testing软件测试网|/i0hf0Q8?
    2.这里输入日期后,会自动弹出日历控件,随便点下其它位置就好了,接下来会用js方法传入日期,就不会弹啦!

oVW+|.i)N)S}0

5Bs3kc`} ju9zv0

WDE?7hN C({0

U+s S+X'e*rK0 51Testing软件测试网{n.E(F2xx

51Testing软件测试网P&_'e3W*C J L%v-T'g*W

五、js方法输入日期
+qO9g"A[7U N%W O0   1.这里也可以用js方法输入日期,其实很简单,直接改掉输入框元素的value值就可以啦。51Testing软件测试网:C&V,a W1C

51Testing软件测试网4}D*p%P%|Y!k

Xl T'o}a&jn051Testing软件测试网O!}.U]P6QE

六、参考代码如下:51Testing软件测试网@1H8O,s3j"l `D

复制代码
fromseleniumimportwebdriver
driver=webdriver.Firefox()
driver.get("https://kyfw.12306.cn/otn/index/init")#去掉元素的readonly属性js ='document.getElementById("train_date").removeAttribute("readonly");'driver.execute_script(js)#用js方法输入日期js_value ='document.getElementById("train_date").value="2016-12-25"'driver.execute_script(js_value)## 清空文本后输入值#driver.find_element_by_id("train_date").clear()#driver.find_element_by_id("train_date").send_keys("2016-12-25")
复制代码

TAG:

 

评分:0

我来说两句

Open Toolbar