selenium自动化总结
上一篇 /
下一篇 2016-07-11 10:29:02
/ 个人分类:web自动化
1. 常见问题
a. 元素定位失败,提示ElementNotVisibleException
可能原因:
1)页面中含有多个iframe,定位的元素在不同ifame中id相同 — 解决方案:切换到当前的iframe中,mainWindow.switchTo().frame(logIframs.get(0));
2)页面或者局部控件还未加载出来,就去获取元素 – 解决方案:延迟几秒再获取或者提供公共接口,在一定时间内等待元素加载出来
try{
element = new WebDriverWait( webDriver, waitTime )
.until(new ExpectedCondition<WebElement>() {
public WebElement apply(WebDriver d) {
return d.findElement(by);
}
});
}catch (Exception e) {
System.out.println(by.toString() + " is not exist until " + waitTime);
}
b. 元素click后,会向上或者向下偏移一部分,鼠标点击正常
1)原因不明,网上解释可能和控件元素重叠有关,解决方案 - 使用js事件点击控件
((JavascriptExecutor)mainWindow).executeScript("arguments[0].click();", webElement);
2. 使用技巧
a. 元素定位工具:推荐使用火狐的firebug查找元素(目前firebug安装需要翻墙,建议有一个自己的vpn账号)
b. 定位方式(优先推荐使用cssSelector):
1) 当页面元素有id属性时,最好尽量用id来定位。但由于现实项目中很多程序员其实写的代码并不规范,会缺少很多标准属性,这时就只有选择其他定位方法。
2). xpath很强悍,但定位性能不是很好,所以还是尽量少用。如果确实少数元素不好定位,可以选择xpath或cssSelector。
3). cssSelector定位元素时,不区分先后顺序,(div.a.b)和(div.b.a)取到的webElement元素相同
3. 自动化环境
推荐使用selenium + junit4,其提供的断言接口方便做判断处理,同时结构清晰,输出结果明确
4. 创建测试用例的标准
1). 检查url是否正确及其加载时间
2). 检查页面元素是否存在
3). 检查页面元素是否与预期一致
4). 检查功能功能点(稳定的)是否正常
5). 为保证测试的独立性,每个用例的起点都是NIUX首页(上个用例结束时需回到该场景)
收藏
举报
TAG: