99道大厂软件测试面试题及答案!百万年薪就靠它了
1.怎么判断元素是否存在?
判断元素是否存在和是否出现不同,判断是否存在意味着如果这个元素压根就不存在,就会抛出
NoSuchElementException
这样就可以使用 try catch,如果 catch 到 NoSuchElementException 就返回 false。通常在
项目中会把这个功能封装在 isElementPresent 方法中。
2.如何判断元素是否出现?
判断元素是否出现,存在两种情况,一种是该元素压根就没有,自然不会出现;另外一种是有这
样的元素,但是是 hidden 状态
可以通过先判断是否存在,如果不存在返回 false;如果存在再去判断是否 displayed。
3.selenium中hidden或者是display = none的元素是否可以定位到?
不能,想点击的话,可以用 js 去掉 dispalay=none 的属性。


5. 如何去定位页面上动态加载的元素?
触发动态事件,然后 findElemnt
如果是动态菜单,需要一级一级 find(JS 实现)
6.如何去定位属性动态变化的元素?
属性动态变化是指该 element 没有固定的属性值,所以只能通过相对位置定位
比如通过 xpath 的轴, parent/following-sibling/precent-sibling 等
另外也可以尝试 findbyelements 遍历
7.点击链接以后,selenium 是否会自动等待该页面加载完毕?
不会的。所以有的时候,当 selenium 并未加载完一个页面时再请求页面资源,则会误报不存在
此元素。所以首先我们应该考虑判断,selenium 是否加载完此页面。其次再通过函数查找该元
素。
8.自动化测试的时候是否需要连接数据库做数据校验?
一般来说 1、 UI 自动化不需要(很少需要);2、接口测试会需要:从数据库层面来进行数据
校验可以更方便验证系统的数据处理方面是否正确;
9.有几种元素常用定位方式,分别是?你最偏爱哪一种,为什么?
8 种:id、name、class name、tag name、link text、partial link text、xpath、css selector
偏爱哪一种?答:
我最常用的是 xpath(或 CssSelector)因为很多情况下,html 标签的属性不够规范,无法通
过单一的属性定位,这个时候就只能使用 xpath 可以去重实现定位唯一 element
事实上定位最快的是 Id,因为 id 是唯一的,然而大多数开发并没有设置 id。
10.怎么提高 selenium 脚本的自动化执行效率?
1.优化测试用例,尽可不使用 sleep,减少使用 ImplicitlyWait
2.多使用 selenium 的 WebDriverWait/FluentWait,这样可以优化等待时间3.减少不必要的操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过
网址来打开,减少不必要的操作。
4.中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容
不影响我们测试,就设置超时时间,中断页面加载。
5.使用性能好的电脑
11.用例在运行过程中经常会出现不稳定的情况,也就是这次可以通过,下次无
法通过了,如何提高用例的稳定性?
1、查找元素前先做判断:ExpectedConditions 里面的各种方法;
2、显式等待:多使用 WebDriverWait,加上显式等待时间,等要操作的元素出现之后再执行
下面的操作;适当的使用 sleep 作为辅助等待。
3、多用 try catch 捕获异常;
4、多线程的时候,减少测试用例耦合度,因为多线程的执行顺序是不受控制的;
5、尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰。
6、使用重试机制,在失败时重运行。
12.你的自动化用例的执行策略是什么?
整体策略是依据项目实际上线和转测试周期来定的。
1.自动化测试用例是用来监控的。集成到 jenkins,创建定时任务定时执行;
2.有些用例在产品上线前必须回归。jenkins 上将任务绑定到开发的 build 任务上,触发执行;
3.有些用例不需要经常执行。jenkins 创建一个任务,需要执行的时候人工构建即可。
13.什么是持续集成?
频繁的将代码集成到主干,持续性的进行项目的构架,以便能能够快速发现错误,防止分支大幅度偏离主干
14.webdriver client 的原理是什么?
在 selenium 启动以后,driver 充当了服务器的角色,跟 client 和浏览器通信,client 根据
webdriver 协议发送请求给 driver。driver 解析请求,并在浏览器上执行相应的操作,并把执
行结果返回给 client.

文字太多,不能一一列举,需要完整电子版的请评论666,然后私,信我,即可领取~