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:

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-03  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 494
  • 日志数: 1
  • 建立时间: 2013-10-30
  • 更新时间: 2016-07-11

RSS订阅

Open Toolbar