【转载】UI自动化之js\jquery的应用

UI自动化之js\jquery的应用

js\jquery的应用,有很多难以定位到的,可以通过js或者jquery来处理

 

目录

1、js

2、jquery

 

1、js

1.1js有5种定位,最后execute_script(js)来执行js

document.getElementById(“id”)

document.getElementsByName(“Name”)

document.getElementsByTagName(“tag”)

document.getElementsByClassName(“class”)

document.querySelectorAll(“css selector")

1.2浏览器滚动条的处理

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)
 
 
 
 
 
 
 
 
 
posted @ 2019-11-29 17:48  痴颠笑天  阅读(197)  评论(0编辑  收藏  举报