1、Selenium 中 hidden 或者是 display = none 的元素是否可以定位到?
不可以。可以写 JavaScript 将标签中的 hidden 先改为 0,再进行定位元素。
2、Selenium 中如何保证操作元素的成功率?也就是说如何保证我点击的元素一 定是可以点击的?
添加元素智能等待时间 driver.implicitly_wait(30)
添加强制等待时间(如 Python 中的 sleep)
try 方式进行 id、name、class、className、xpath、css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种
3、如何提高 Selenium 脚本的执行速度?
代码优化,多任务,分布式部署都是可以提升脚本执行速度的。
4、用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,
如何去提升用例的稳定性?
time.sleep()
driver.implicitly_wait(30)
多用 try 捕捉,处理异常
5、你的自动化用例的执行策略是什么?
自动化测试与软件开发本质上是一样的,利用自动化测试工具,经过测试需求分 析,设计出自动化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚 本,验证测试脚本的正确性,最终完成自动化测试测试脚本(即主要功能为测试 的应用软件)并输出测试结果。
6、自动化测试的时候是不是需要连接数据库做数据校验?
从数据库层面来进行数据校验可以更方便验证系统的数据处理方面是否正确,数 据处理逻辑正常后,UI 层面上的校验也是需要做的。
7、id,name,class,className,xpath,css selector 这些属性,你最偏爱哪一种,为什么?
css、xpath 几乎所有的元素都可以定位到,但是它们的短处在于页面上更改了元素后位置很容易改变,所以首先使用的还是 id 或者 name 等。
8、如何去定位页面上动态加载的元素?
触发动态加载元素的事件,直至动态元素出现,进行定位。
9、如何去定位属性动态变化的元素? xpath 或者 css 通过同级、父级、子级进行定位。
10、什么是 page object 设计模式?
简单来说,就是把页面作为对象,在使用中传递页面对象,来使用页面对象中相 应的成员或者方法,能更好的体现面向对象语言(如 Java 或 Python)的面向对象和封装特性。
11、如何在定位元素后高亮元素(以调试为目的)?
用 JavaScript 等脚本来重置元素属性,给定位的元素加背景、边框。
12、什么是断言?
断言的英文是 assertion,断言检查的英文是 assertion checking。
断言是指定一个程序必须已经存在的状态的一个逻辑表达式,或者一组程序变量 在程序执行期间的某个点上必须满足的条件。
13、你觉得自动化测试最大的缺陷是什么?
不稳定
可靠性
不易维护
成本与收益
14、WebDriver 可以用来做接口测试吗?
接口测试有现成的模块来处理,WebDriver 是用于做 WebUI 自动化测试的。如果 要实现接口测试,可以使用 Requests 模块来实现。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取