众所周知,在WEB UI自动化过程中经常会遇到一些元素无法定位,因此常常需要加一些JS脚本,本文中总结了测试过程中常用的JS脚本供大家参考,欢迎各位同学指正,大家一起共同进步。
指定element元素
JavascriptExecutor js=null;
WebElement element=driver.findElementById("idname");
1.JS实现Page页面的滚动
js.executeScript(" arguments[0].scrollIntoView(true);",element);
js.executeScript("window.scrollBy(0,-200)"); ---->滚动整个windows界面
2.返回某些value的集合进行遍历
String values=js.executeScript("return document.querySelectorAll(‘[name=xxx]:checked’)[0].value").toString();
*标黄部分根据实际UI而定
3.JS获取某个元素并且滑动到顶部
js.executeScript("document.getElementsByClassName('xxx').scrollTop=10000");
4.JS执行点击操作
js.executeScript("arguments[0].click();",element);
5.JS获取value
js.executeScript("arguments[0].value")
6.返回appversion
String version=js.executeScript("return navigator.appVersion");
7.测试过程中经常会遇到需要通过F12-Application-设置MRS等某些属性来完成测试环境的切换
js.executeScript("localStorage.setItem('MRS', ' TEST3')"); --->前者为需要设置的key,后者对应的value值
获取某个属性值
js.executeScript("return localStorage.getItem('MRS');");
8.自动化测试过程中,经常需要验证某些属性或者text,可以执行以下语句,当定位到元素后,可以给元素加上指定的样式进行判断,方便定位问题;
js.executeScript("arguments[0].setAttribute('style', arguments[1]);",element,"color: black; border: 4px solid " +color+";");
效果如下:
color需要根据实际情况指定颜色,比如完全正常用green,部分正确用orange,完全错误用red;
9.返回页面和api调用的情况
js.executeScript("return window.store.getState().layout.main.loaded;")
js.executeScript("return window.store.getState().apiCalls.callInProgress;")