【转载】UI自动化之js\jquery的应用
UI自动化之js\jquery的应用
js\jquery的应用,有很多难以定位到的,可以通过js或者jquery来处理
目录
1、js
2、jquery
1、js
1.1js有5种定位,最后execute_script(js)来执行js
|
1
2
3
|
js="var q=document.getElementById('id').scrollTop=0" #滚动到顶部js="var q=document.documentElement.scrollTop=10000" #滚动到底部部scrollTo(x, y)js ="window.scrollTo(100,400);" #宽度为100,高度为400的位置 |
1.3js点击(使用select模块时,会点击失效)
|
1
2
|
js = 'document.getElementsByClassName("prefpanelgo")[0].click();'driver.execute_script(js) |
1.4多窗口时,在当前页面打开窗口,处理方式同readonly属性的日历框处理
|
1
2
3
4
|
跳转链接有 target="_blank" 属性,可以将此属性置空,然后再操作就不会打开新窗口# 修改元素的 target 属性js = 'document.getElementsByClassName("mnav")[0].target="";'driver.execute_script(js) |
2、jquery
jquery就是换成$即可,selector中支持css语法,注意:目前很多H5的页面,前端开发的框架如果使用的是vue,用$就不行
|
1
|
jquery='$(‘#qq’).click()' #$(selector).action() driver.excute_script(jquery) |
我们可以在浏览器中调试,所写的jquery是否唯一定位到一个元素
js在自动化测试中的常见应用
1.基本元素定位
document.getElementByIdx_x_x_x('kw').value='selenium'
2.disable、readonly元素的操作
原生的方式(selenium提供的api)不能操作readonly的元素
//js移除属性
document.getElementByIdx_x_x_x('train_date').removeAttribute('readonly').sendkeys()
3.处理display:none;type=hidden;hidden的不可见元素
#========修改元素的display属性为block=================
js='document.getElementByIdx_x_x_x("div_allsort").style.display="block"'
self.driver.execute_script(js)
#========移除元素的type属性和hidden属性===============
js1= 'document.getElementByIdx_x_x_x("yoyo").removeAttribute("type")'
driver.execute_script(js1)
driver.find_element_by_id("yoyo").send_keys("abc")
js = 'document.getElementByIdx_x("setf").target="";'
js3= 'document.getElementByIdx_x_x_x("baidu").removeAttribute("hidden")'
driver.execute_script(js3)
driver.find_element_by_id("baidu").click()
4.多窗口操作技巧(修改或移除target属性)
同上
5.滚动操作
window.scroll(0,1000)
window.scroll(0,document.body.scrollheight)
tips:document和window是js的2个内置对象
6.点击
js = 'document.getElementsByClassName("prefpanelgo")[0].click();'
driver.execute_script(js)
driver.execute_script(js)
车到山前必有路,学到苦海甘甜来。只有知识和阅历对的起自己的年龄,美好的生活才不会欺骗自己!

浙公网安备 33010602011771号