一、selenium中如何判断元素是否存在
expected_conditions模块提供了多种校验方式,我常用的一种是presence_of_element_located(判断某个元素是否被加到了dom树里,
并不代表该元素一定可见,如果定位到就返回WebElement)
二、selenium中hidden或者是display = none的元素是否可以定位到?
可以定位到,但是不能操作,为了显示我们会的更多,我们可以说通过is_displayed()方法来判断显示或不显示,如果想点击的话,可以用js
去掉dispalay=none的属性。
三、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?
通过wait模块中的WebDriverWait类提供的until或until_not方法与expected_conditions结合使用,进行二次封装。
四、如何提高selenium脚本的执行速度?
1.少用sleep,尽量不用implicitly_wait
2.多用显式等待方法
五、用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?
通过wait模块中的WebDriverWait类提供的until或until_not方法与expected_conditions结合使用,进行二次封装。
六、自动化测试的时候是不是需要连接数据库做数据校验?
UI自动化不需要、接口测试会需要
七、id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?
我喜欢用css selector css语法简洁,定位快(xpath语法长,定位慢,还不稳定)
八、如何去定位页面上动态加载的元素?
通过wait模块中的WebDriverWait类提供的until循环的去判断是否出现了要用的元素
九、如何去定位属性动态变化的元素?
先去找该元素不变的属性,要是都变,那就找不变的父元素,用层级定位
十、怎样去选择一个下拉框中的value=xx的option?
1、通过两次click可以做到
2、通过执行js脚本做到(前提是你能写出js代码)
3、selenium提供了select模块,我们可以通过select模块中的方法定位,比如 index_of、value、text
4、还可以通过xpath定位,但是有时会出错误
十一、UI自动化最大的缺陷是什么?
需求变动大的时候,维护成本大
十二、webdriver可以用来做接口测试吗?
不可以、webdriver是专门做webUI自动化的。