webdriver UI自动化测试执行JS脚本
来源:互联网 发布:js视频进度条 编辑:程序博客网 时间:2024/05/16 18:55
不管是selenium RC 还是 webdriver 其在浏览器端 最终还是通过JS来操作页面元素实现自动化测试的(可参见2者的实现原理),在做自动化测试的时候,如果webdriver现有的java API 不满足测试需要的时候,我们可以尝试执行js脚本来协助自动化测试的运行,还好webdriver提供了执行JS脚本的接口:webdriver.executeScript(String jsCMD);
使用实例:
由于我所测试的项目 前端使用的JS框架是angular js,根据angular js 双向绑定的特点,开发无需在当前页面直接显示页面元素对应的值,只需要将此元素(angular js 的属性)绑定到对应的controller中即可,数据在controller中维护,所以测试页面有些属性你直接是抓不到他的文本值的,如下图:
从上面可以看出,这个输入框的数据肯定维护在了其他地方,此时,我们可以咨询此页面的开发人员,这个值存在哪里,以及如何拿到,如果这个值没有在当前页面的其他地方,而是在页面引用的其他的JS文件中存储的时候,webdriver通过元素定位值的方式 是无法拿到这个输入框的内容的,这个时候我们就可以 考虑使用JS去拿到这个值,如果你对所测网页的前端代码架构很熟悉 可以自己尝试些JS 或者直接让开发人员提供给你JS。
获取以上输入框值得操作如下:
String getInfo = "return angular.element(document.getElementById('email')).scope().supplierBaseInfo.supplierName"; JavascriptExecutor jse=(JavascriptExecutor) TestBase.getWebDriver(); String baseMap = (String) jse.executeScript(getInfo);
通过上面的代码我如愿的拿到了我想要的结果.
“return angular.element(document.getElementById('email')).scope().supplierBaseInfo.supplierName“
记住JS脚本 前 一定要有 return ,如果上面脚本改为:
“angular.element(document.getElementById('email')).scope().supplierBaseInfo.supplierName“
执行以上JS不能返回运行结果:
String baseMap = (String) executeScript(“angular.element(document.getElementById('email')).scope().supplierBaseInfo.supplierName)
================执行js脚本在浏览器上打开新的tab页
public void openTab(Stringurl) {
String script ="var d=document,a=d.createElement('a');a.target='_blank';a.href='%s';a.innerHTML='.';d.body.appendChild(a);return a";
Object element = trigger(String.format(script,url));
if (elementinstanceof WebElement) {
WebElementanchor = (WebElement) element;
anchor.click();
trigger("var a=arguments[0];a.parentNode.removeChild(a);",anchor);
} else {
thrownew JavaScriptException(element,"Unable to open tab", 1);
}
}
- webdriver UI自动化测试执行JS脚本
- Selenium Webdriver 编写UI自动化测试脚本
- 基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构)
- 基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构)
- Webdriver UI自动化测试 实现自动登录
- 执行 Selenium WebDriver 测试脚本抛出 StaleElementReferenceException
- Selenium+Webdriver学习(三) 执行JS脚本
- Selenium+Webdriver学习(三) 执行JS脚本
- Webdriver UI自动化测试使用mybatis访问数据库
- webdriver自动化脚本
- webdriver 自动化测试
- 自动化测试--selenium-webDriver
- webdriver自动化测试
- 使用AndroidStudio执行UI Automator 自动化测试
- Webdriver Ui自动化测试,使用工厂方法生产不同浏览器的webdriver实例
- Eclipse 执行 Selenium WebDriver 测试脚本无法启动浏览器
- python webdriver执行所有测试用例脚本
- selenium webdriver学习(三)------------执行js脚本
- 实现圆形头像效果
- Spring - IOC创建对象的时机,创建Bean的Scope 及其 IOC的 生命周期
- 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
- 关于更新局部listview中数据的问题
- 阅读任玉刚博客有感
- webdriver UI自动化测试执行JS脚本
- vc中关闭对话框dialog
- KING_UNITY学习之鼠标点击地面控制人物移动
- LeetCode 144:Binary Tree Preorder Traversal
- qpixmap 鼠标移动,局部放大
- 使用python重写上篇文章的内容分析工具
- range,hash,list分区
- php【基础学习七】string操作
- Android中string资源文件使用技巧