宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

Q1.如果一个元素无法定位,你一般会考虑哪些方面的原因?

1.页面加载元素过慢,加等待时间

2.页面有frame框架页,需要先跳转入frame框架再定位

3.可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。

4.可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成,

Q2:举例说明使用selenium框架所遇到的异常

NoSuchElementException:没有该元素异常

TimeoutException : 超时异常

ElementNotVisibleException :元素不可见异常
NoSuchAttributeException :没有这样属性异常
NoSuchFrameException :没有该frame异常

Q3:关闭浏览器中quit和close的区别

简单来说,两个都可以实现退出浏览器session功能,close是关闭你当前聚焦的tab页面,而quit是关闭全部浏览器tab页面,并退出浏览器session。知道这两个区别,我们就知道quit一般用在结束测试之前的操作,close用在执行用例过程中关闭某一个页面的操作。

Q4:什么是PO模式,为什么要使用它

PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。

好处:

PO模式是一种自动化测试设计模式,将业务逻辑和测试逻辑分开,也就是把对象的定位和测试脚本分开,从而提高可维护性。(换个项目只要改写业务逻辑不用改动测试逻辑)

使业务更清晰

代码更利于维护

可以复用

Q5: python中_ _ init _ _ 和 _ _ new _ _ 区别是什么?

在python的面向对象中,利用new方法创建对象,然后把这个创建的对象传递到init函数中,以第一个参数进

Q6:高质量的自动化脚本应该具备哪些特性?

不需要深入的工作或计划。

可以加快开始自动化。

对实际执行操作可以审计跟踪。

用户不必是编程人员。

提供良好的(软件或工具)的演示。

Q7:selenium工作原理

我们使用Selenium实现自动化测试,主要需要3个东西

1.测试脚本,可以是python,java编写的脚本程序(也可以叫做client端)

2.浏览器驱动, 这个驱动是根据不同的浏览器开发的,不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本,比如:geckodriver.exe(chrome)

3.浏览器,目前selenium支持市面上大多数浏览器,如:火狐,谷歌,IE等

驱动过程分析

对于每一条Selenium脚本,一个http请求会被创建并且发送给浏览器的驱动
浏览器驱动中包含了一个HTTP Server,用来接收这些http请求
HTTP Server接收到请求后根据请求来具体操控对应的浏览器
浏览器执行具体的测试步骤
浏览器将步骤执行结果返回给HTTP Server
HTTP Server又将结果返回给Selenium的脚本,如果是错误的http代码我们就会在控制台看到对应的报错信息。