Selenium+Web UI自动化测试常见的高频面试题

  今天想和大家分享一篇有关Selenium+Web UI自动化测试的面试题,今天看了一个视频,在此加以总结,欢迎大佬进行补充。(由于本人平时使用java,所以下文皆以java语言为例)

1. Selenium怎么判断元素是否存在?

答:其实Selenium是没有现成的方法判断一个元素是否存在,所以我们可以选择曲线救国,把想要寻找的元素放在一个list中,判断list的size()是否为0,为0则不存在;不为0则存在。或者通过try catch的方式,当元素不存在时,捕捉异常,并且有相应的提示信息。如下为放在list中的伪代码,大概思路就是这样。

List<WebElement> list = driver.findelements(By.xpath(""));
int size = list.size();
if(size==0){
    System.out.println("元素不存在于此页面!");
} else{
    System.out.println("元素存在于此页面!");
}

2. 怎么保证你要操作的元素一定是可以点击的?

答:1)可能由于服务器性能较差,或者网速较慢等原因,导致元素暂时还未加载出来,元素此时无法点击。可以通过等待元素加载解决此问题(等待分三种:隐式等待,显式等待和强制等待,这里推荐显示等待,相对提高执行效率)。

     2)元素定位没问题,但是元素太小,Selenium无法点击到元素的中心位置。此时可以通过往上面层级的方式,找到更大的元素中心点,此时就可以对元素进行点击。

     3)当元素被遮挡,例如下拉框遮挡的元素,也会无法点击,并且报错。此时只需要点击页面的其他任意元素,使下拉框收回,遮挡元素便可以进行点击。

     4)被点击的元素在可视范围之外时,元素也无法点击。此时可以通过操作滚动条来解决,Selenium中没有直接操作滚动条的方法,曲线救国又来了,可以通过执行javascript代码进行滚动条的操作。下面的代码是将元素向右滚动x像素点,向下滚动y个像素点,如果需要向左和向上滚动,x,y分别为负值即可。当然滚动条操作还有其他的方法,比如滚动到某个元素的位置等,具体大家可以自查。伪代码如下:

driver.excuteScript("windows.scrollBy(x,y)");

     5)可以直接判断元素是否可以点击。

driver.findElement(By.id("")).isClickable();

3. 用例在执行中会出现不稳定的情况,如何避免,提高用例的稳定性?

     1)使用干净的测试环境,没有其他的数据干扰。

     2)使用等待。

     3)多使用try捕捉异常(只针对于经常失败的元素)。

4. 如何提高Selenium的执行速度?

     1)排除硬件和网络问题。

     2)不要过多使用强制等待,尽量使用显式等待。

     3)选择性能较好的浏览器,例如:chrome, safari。

     4)分布式执行,Selenium grid支持多个浏览器同时执行,并且互不干扰,而且可以进行远程部署。

5. 元素定位方式:id, name, class name, css selector, xpath 哪个效率更高?

答:优先级:id>name>css selector>xpath,id是最快的定位方式。因为xpath需要全文检索,所以效率最差。

6. 自动化执行策略?

     1)根据测试需求分析,设计测试用例。

     2)搭建环境框架。

     3)实现测试用例。

     4)验证代码的正确性。

     5)对被测试软件进行测试,得到测试结果。

7. 测试用例执行 (我门公司使用的是Teamcity来设置定时任务)

     1)每天执行

     2)周期执行,自设周期

     3)动态执行,每次提交代码都会执行

8. UI自动化测试需不需要进行数据库的校验?

答:一般不需要,数据校验应该已经在单元测试时进行了验证,无需多此一举。除非一些重要的数据,也可以连接数据库进行验证。

9. Selenium的原理是什么?

     1)浏览器

     2)driver: 一般会下载与浏览器版本对应的driver

     3)请求代码,client。请求代码发送给driver, driver解析请求之后,在浏览器进行相应的操作。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值