首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
PowerPC
» 自动化框架 FluentLenium 在全球化测试场景中的应用(6)常见问题
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
自动化框架 FluentLenium 在全球化测试场景中的应用(6)常见问题
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-11-22 18:54
|
只看该作者
自动化框架 FluentLenium 在全球化测试场景中的应用(6)常见问题
结合 Selenium 解决常见问题
处理 Iframe 和切换多个窗口 switchTo(FluentWebElement)方法能够切换到指定的 Iframe。通过 switchTo()或者 switchToDefault()能够切换回到原来的页面。
缩放浏览器的显示比例。首先,通过 getDriver()方法获取到 WebDriver 对象,然后调用 Selenium 的定位方法定位 html 标签,再通过 WebElement 对象的 sendKeys 方法发送组合键达到缩放窗口的效果。WebDriver driver = getDriver();
WebElement html = driver.findElement(By.tagName("html"));//Zoom Inhtml.sendKeys(Keys.chord(Keys.COMMAND, Keys.ADD));//Zoom Outhtml.sendKeys(Keys.chord(Keys.COMMAND, Keys.SUBTRACT));
如何上传文件
上传文件首先调用 getDriver()方法获得 selenium Webdriver 对象,然后定位到页面上的上传元素,再通过 sendKeys(keysToSend)方法,执行上传。
WebDriver driver = getDriver();WebElement uploadBtn = driver.findElement(By.name("Upload")); uploadBtn.sendKeys("C:\\file.txt");
在识别元素过程中,经常会用到元素的 css 属性,在此过程中,会有很多试错的过程,因为同一个页面会有很多相同属性的元素,这时需要找到上下的逻辑关系,或者页面的唯一识别元素来精确定位元素的位置,结合元素的属性,进行进一步的测试。通常我们在点击某个页面元素的时候,可能会遇到悬浮窗,这时,系统会报错,提示有 element 悬浮在页面上方,这时需要加一些判断,来处理悬浮窗,等待其消失或者主动将其关闭。从而顺利执行我们的 testcase。
结合 Javascript 解决常见问题
把字符串标记出来
在 TVT 截图过程中需要标明哪些字符串是需要被验证的对象,所以我们在利用工具截图过程中需要将其标记出来,这时我们可以调用 JavaScript 脚本来为元素加边框。在程序里我们可以通过调用 executeScript(String script)方法来执行 JavaScript。如: executeScript("document.getElementById(\"kw\").style.border=\"2px solid red\";");
利用 JavaScript 显示隐藏对象
JavaScript 隐藏 Element 的方式通过设置 style 的 display 和 visibility 属性实现。如:
style.display="none"或 style.visibility="hidden",它们的区别是:"display"不但隐藏 Element,而且被隐藏的 Element 不再占用显示时占用的位置,而"visibility"隐藏仅仅是将 Element 设置成不可见,但被隐藏的 Element 仍占据原来的的位置。于是我们可以通过改变"display"和 "visibility"的值来显示出 Element,如:
style.display="block"或 style.visibility="visible",如:
executeScript("document.getElementsByClassName(\"tooltip\")[0].style.display=\"block\"");或 executeScript("document.getElementsByClassName(\"tooltip\")[0].style.visibility=\"visible\"");需要注意的是在 JavaScript 里的双引号需要用\转义。同样的,也可以使用 JQuery 语法把隐藏对象显示出来。
//隐藏$("#id").css('display','none'); 或 $("#id").hide()//显示$("#id").css('display','block'); 或 $("#id").show()//切换 Element 可见状态
$("#id").toggle()注
("#id")表示返回的 JQuery 对象。
利用页面对象模式提升代码的可读性
页面对象模式能把所有的用户与界面交互的元素做封装,更易于代码的维护和阅读。如果将来页面出现变化,可以很方便的通过修改 Page 类来适应新的变化。
页面对象封装模板
结束语本文简要介绍了 Selenium、FluentLenium 框架在 GVT/TVT 中截图的应用,从而可以提高 GVT 和 TVT 的工作效率。而且,该框架结合 Selenium 也能够实现 GVT/TVT 中的大多数测试用例。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议