Skip to content

ui自动化中定位不到元素的原因有哪些

自动化定位不到元素的原因有:
1> 定位器选择错误
2> 定位字符串错误
3> 元素嵌套在frame当中
4> 页面元素没有及时加载
5> 元素在新窗口中
6> 脚本流程与实际不符
7> 元素不在当前页

如何保证自动化测试的稳定性

自动化测试稳定性主要表现在两个方面:一个是元素定位的问题,一个是用例之间的依赖问题。 元素定位问题可以采用智能等待的方式尽可能的避免; 用例依赖可以解耦用例之间的关系,让每条用例都从一个共同的页面开始执行,比如首页,这就需要在 测试框架中采用后置处理的方式使每条用例执行完成后都回到首页。

web自动化中如何处理alert弹窗

selenium里提供了switch_to.alert方法来处理弹窗,处理代码如下(Python)

web ui自动化测试中显式等待,隐式等待的区别

相同点 都是智能等待,在一定时间范围内不断查找元素,一旦找到立刻结束查找继续执行代码,没找到才会一 直找到超时为止 不同点 隐式等待是全局性设置,并且可以随时更改,在更改后对之后的findxxx方法生效,对点击、输入之类的 操作不起作用; 显式等待仅仅针对单一元素或一组生效,并且不仅仅是针对查找,也可以针对Alert、iframe,或者元素 的某些属性进行自定义判断

验证码的几种处理方式

针对验证码有如下方法: 1> 在产品没有上线前,需要找开发先给web验证码留后门,也就是将验证码验证先注释掉 2> 让开发给web验证码留一个万用验证码,只要输入给定的验证码,就可以强制登录 3> 当有的页面可以勾选保存用户名,密码可以通过Cookie跳过登录验证码,使用抓包工具就行了 4> 使用验证码识别技术

切换到alert窗口

alert = driver.switch_to.alert

点击确定

alert.accept()

在selenium中如何处理多窗口?

这个多窗口之间跳转处理,在实际selenium自动化测试经常遇到。点击一个链接,这个链接会在一个新 的tab打开,然后接下来要查找元素在新tab打开的页面,需要先将driver切换至window,然后再定位, 步骤如下 1. 先获取当前的windowhandle 2. 操作打开新界面后,获取所有的windowhandles 3. 遍历windowhandles,判断和当前的windowhandle不一样则切换至该windowhandle 4. window太多则可以按照title、url等其他信息进行判断切换

你是如何处理iframe里面元素定位的?

有时候我们写的元素定位表达式没有问题,但是脚本还是提示no such element,那么我们就需要考虑 这个元素是否在iframe中。通过f12查看元素HTML中是否有iframe标签,如果有iframe,需要先将 driver切换到iframe中,可以通过frame的name和id和索引三种方法来定位frame,或者先找到iframe 的元素,然后把这个元素传递进去也可以。

Webdriver中关闭浏览器的quit和close有什么区别

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

了解过的UI自动化框架有哪些

web自动化主要是Selenium APP自动化主要是Appium

你是怎么做自动化测试的。项目组几个人,分工怎么负责,分支代码怎么合并

提示: 1、可以围绕你是怎么进行自动化工具/脚本的选型进行阐述 2、针对自动化测试用例的设计思路进行说明 3、针对自动化测试的执行流程,触发场景等进行说明(最好要体现持续集成,然后与持续部署打通) 4、说明你们项目组目前自动化的实现程度,都运用在了哪些环境上 5、介绍一下组员之间的分工,代码分支的管理,这里的代码分支肯定不止一个,具体可参考开发的代码分支管理的模式

你们项目中selenium用什么元素定位方法最多,css和xpath区别。PO模式你们怎么做的

1、应该是xpath或者css用的多一些,像什么id和name之类的应该用得少,现在前端页面都是用框架开发的 ,一般元素没有id,或者id都是动态的,每次都会随机变化 2、2个定位方式的区别的话,可以从表达式的简洁程度、在不同浏览器的响应速度、易用性上面去考虑 3、PO模式的话,这里需要介绍PO模式的思路,介绍你是怎么管理页面元素,为什么要这么管理,以及怎么去执行用例和生成报告等

在上一家公司做自动化测试用的什么框架?

1.pytest+requests+allure 2.python+selenium+pytest+allure 3.robotframework+Selenium2Library

自动化中有哪三类等待?他们有什么特点?

1.线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒过后,再执行后续的代码。建议少 用。 2.imlicitlyWait(隐式等待)会在指定的时间范围内不断的查找元素,直到找到元素或超时,特点是必须 等待整个页面加载完成。 3.WebDriverWait(显式等待)等待某个元素加载完成,再继续执行后续的代码

xpath和css定位都比较强大,那他们之间有什么区别?

1、SS比XPath速度快,因为css是配合html来工作,它实现的原理是匹配对象的原理,而xpath是配合xml工作的,它实现的原理是遍历的原理,所以两者在设计上,css性能更优秀 2、对于class属性Css能直接匹配部分,而Xpath对于class跟普通属性一致
3、xpath可匹配祖先元素,css不可以
4、xpath可以查找兄弟元素, Css只能查找元素后面(弟弟妹妹)的元素,不能向前找(哥哥姐姐)

为什么要使用PO模式?

PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。
Page Object是一种程序设计模式,将面向过程转变为面向对象(页面对象),将测试对象(按钮、输入框、标题等)及单个的测试步骤封装在每个Page对象中,以page为单位进行管理。这样,在Selenium测试页面中可以通过调用页面类来获取页面元素,从而巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。当页面元素id变化时,只需要更改测试页面文件类中页面的属性即可。可以使代码复用,降低维护成本,提高程序可读性和编写效率。

POM解决的问题:

以页面为单位,集中管理元素对象和方法。当页面元素或流程变动时只需要修改相关页面方法即可,不需要修改相应脚本,后期维护方便 。
PO模式是一种设计思想,在实际编码的时候可以有若干种实现方式。实际上,也建议大家根据自己项目的情况来动态的编码。具体来说,常见的PO模式有:
1)三层:对象库层+case层+page层
2)四层:对象库层+case层+page层+公共类

简单介绍一下自动化项目整体框架的结构

自动化测试框架涵盖基础方法封装、自定义异常封装、工具类封装、元素管理封装、Page Object模式封装、日志封装、数据管理封装、失败重试封装、浏览器/手机适配封装、数据库操作封装、测试用例管理封装、测试报告等等。

如何保证UI自动化测试的稳定性?

自动化测试稳定性主要表现在两个方面:一个是元素定位的问题,一个是用例之间的依赖问题。 元素定位问题可以采用智能等待的方式尽可能的避免,另外,优化xpath定位的写法等。 用例依赖可以解耦用例之间的关系,让每条用例都从一个共同的页面开始执行,比如首页,这就需要在测试框架中采用后置处理的方式使每条用例执行完成后都回到首页。