赞
踩
本文是笔者面试过程中,遇到常问自动化测试问题,俗称追命20问,废话比不多说,直接上干货。
`
判断元素是否存在和是否出现不同,判断是否存在意味着如果这个元素压根就不存在,就会 抛出
NoSuchElementException 这样就可以使用 try catch,如果 catch 到 NoSuchElementException 就返回
false。通常在项 目中会把这个功能封装在 isElementPresent 方法中
不能,想点击的话,可以用 js 去掉 dispalay=none 的属性。
1.通过封装 find 方法实现 waitforEmelentPresent,这样在对元素进行操作之前保证元素被 找到,进而提高成功率
2.在对元素操作之前,比如 click,如果该元素未 display(非 hidden),就需要先滚动到该 元素,然后进行 click 操作;为啥使用滚动? 因为如果页面没有完全显示,element 如果是 在下拉之后才能显示出来,只能先滚动到该元素才能进行 click,否则是不能 click 操作
3.不同方式进行定位,与 expectedConditions 判断方法封装,循环判断页面元素出现后再操 作;
4.开发人员规范开发习惯,如给页面元素加上唯一的 name,id 等。
触发动态事件,然后 findElemnt 如果是动态菜单,需要一级一级 find(JS 实现)
属性动态变化是指该 element 没有固定的属性值,所以只能通过相对位置定位比如通过 xpath 的轴,
parent/following-sibling/precent-sibling 等 另外也可以尝试 findbyelements 遍历
不会的。所以有的时候,当 selenium 并未加载完一个页面时再请求页面资源,则会误报不
存在此元素。所以首先我们应该考虑判断,selenium 是否加载完此页面。其次再通过函数 查找该元素。
一般来说 1、 UI 自动化不需要(很少需要);2、接口测试会需要:从数据库层面来进行数 据校验可以
更方便验证系统的数据处理方面是否正确;
8 种:id、name、class name、tag name、link text、partial link text、xpath、css selector 偏爱哪一
种?答: 我最常用的是 xpath(或 CssSelector)因为很多情况下,html 标签的属性不够规范,无法 通
过单一的属性定位,这个时候就只能使用 xpath 可以去重实现定位唯一 element 事实上定位最快的是
Id,因为 id 是唯一的,然而大多数开发并没有设置 id
1.优化测试用例,尽可不使用 sleep,减少使用 ImplicitlyWait
2.多使用 selenium 的 WebDriverWait/FluentWait,这样可以优化等待时间
3.减少不必要的操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接 通过 网址来打开,减少不必要的操作。
4.中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的 内容 不影响我们测试,就设置超时时间,中断页面加载。
1、查找元素前先做判断:ExpectedConditions 里面的各种方法;
2、显式等待:多使用 WebDriverWait,加上显式等待时间,等要操作的元素出现之后再执 行下面的操作;适当的使用 sleep 作为辅助等待。
3、多用 try catch 捕获异常;
4、多线程的时候,减少测试用例耦合度,因为多线程的执行顺序是不受控制的;
5、尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰。
6、使用重试机制,在失败时重运行
例如:以上简单的10问,是在UI测试过程中常见所遇到的问题,并不是简单刻板的回答,常常会引发面
试官在实际项目中的连环追问,所以,一定切合实际项目,综合比较给出合适答案。关注我,不迷路,
继续安排面试10问。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。