selenium自动化面试题,百度总结和自己经历
1、id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?
- css 、xpath 几乎所有的元素都可以定位到
2、如何去定位页面上动态加载的元素?
- 触发动态加载元素的事件,直至动态元素出现,进行定位
3、如何去定位属性动态变化的元素?
- xpath或者css通过同级、父级、子级进行定位
4.解释使用TestNG而不是JUnit框架的好处?
TestNG相较于Junit的优势:
1)在JUnit中,我们必须声明@BeforeClass和@AfterClass,这是JUnit中的一个约束,而在TestNG中没有像这样的约束。
2)TestNG提供了更多的setUp / tearDown级别。
1.@ Before/AfterSuite 2.@Before/AfterTest 3.@Before/AfterGroup
3)TestNG中不需要扩展任何类。
4)TestNG中没有方法名称约束,就像JUnit一样。
5)在TestNG中,我们可以告诉测试一个方法依赖于另一个方法,而在JUnit中这是不可能的。
6)测试用例的分组在TestNG中可用,而JUnit中则不可用。执行可以基于组完成。例如,如果你已经定义了许多案例,并通过将2个组分别定义为“离职“与”回归”隔离。如果你只是想执行“理智”的情况,那就告诉TestNG执行“理智”。TestNG将自动执行属于“离职”组的案例。
7)另外,TestNG支持并行测试用例执行。
5、举例一下你遇到过那些异常,在selenium自动化测试过程中
- ElementNotSelectableException :元素不能选择异常
- ElementNotVisibleException :元素不可见异常
- NoSuchAttributeException :没有这样属性异常
- NoSuchElementException:没有该元素异常
- NoSuchFrameException :没有该frame异常
- TimeoutException : 超时异常