一、UI自动化相关

1. UI自动化的本质(重点)

定位元素→操作元素→模拟页面操作→断言→测试报告

2. 适合UI自动化的场景

UI自动化的前提条件

(1)需求不能频繁变动

(2)UI稳定(UI自动化就是基于UI层面的,UI界面总变化无法开展)

(3)项目周期长(UI自动化脚本编写和调试耗时,项目周期短纯手工更高效)

(4)回归测试频繁(回归测试多就会有不断的主流程功能需要回归,自动化更高效)

适用场景

(1)冒烟测试

(2)主功能回归测试

3. UI自动化的原则

(1)一个case完成一个功能测试(直接从功能测试用例里摘出可以自动化的进行标记)

(2)一个脚本是一个完整的业务场景

(3)每个脚本可以独立运行,没有依赖关系

(4)设计合适的检查点

(5)设计良好的框架

4. UI自动化的覆盖率

覆盖率是根据具体项目来说的,并不是说占比越高就越好,会收到项目周期,迭代次数等影响;

5. UI自动化用例从哪里来:手工测试用例中摘出可以自动化的

二、Selenium相关

1. selenium优点(重点)

(1)开源,免费

(2)支持多浏览器:firefox,Chrome(常用前两个),Opera,IE,Edge,Safari

(3)支持多平台:Windows,Linux,MAC

(4)支持多语言:Python,Java,C#,C++,JavaScript

(5)对web支持良好

(6)简单(API简单),灵活(开发语言进行驱动)

(7)支持分布式测试用例执行

2. Selenium的发展(了解即可)

(1)selenium1.0:2004年,Jason Huggins研发Selenium项目,2006年加入了Selenium RC(Remote Control)是Selenium家族的核心部分。

(2)Selenium2.0:2011年,因为Selenium和Webdriver的合并,Selenium 2.0由此诞生。简单用公式表示为:Selenium 2.0 = Selenium 1.0 + WebDriver;在Selenium 2.0中主推的是WebDriver,可以将其看作Selenium RC的替代品。因为Selenium为了保持向下的兼容性,所以在Selenium 2.0中并没有彻底地抛弃Selenium RC。

(3)Selenium3.0:2016年,selenium3.0出生

——去掉了RC,简单用公式表示为:Selenium 3.0 = Selenium 2.0 - Selenium RC(Remote Control)

——Selenium3.0只支持Java8版本以上。

——Selenium3.0中的Firefox浏览器驱动独立了,以前装完selenium2就可以驱动Firefox浏览器了,现在和Chrome一样,必须下载和设置浏览器驱动。

——支持的浏览器更多了。

RC和webdriver区别:RC是通过脚本→selenium server→浏览器→web应用

Webdriver是直接脚本→浏览器→web应用,速度更快;

3. Selenium环境搭建的一般问题:浏览器需要装对应版本的driver驱动,启动不了或者是报版本错误,一般就是下载的driver版本不对应。

三、Selenium常用API

1.八大定位方式

from selenium import webdriver

driver=webdriver.Chrome()
#以下方式均可以find_elements
driver.find_element_by_id("**")#id值定位,唯一
driver.find_element_by_name("**")#name属性,不唯一
driver.find_elements_by_class_name("**")#类名定位,class的属性值
driver.find_element_by_tag_name("**")#标签名定位,定位到第一个标签
driver.find_element_by_link_text("**")#链接文本定位,必须有链接和可跳转的文字
driver.find_element_by_partial_link_text("**")#部分链接文本定位
driver.find_element_by_xpath("**")#xpath路径表达式
driver.find_element_by_css_selector("**")#css选择器定位

重点说明:

1.复合类(class=“类名1 类名2”)即class包含超过2,不要用class_name定位,会报错

2.link_text文字可以点击跳转就可以用这个方式定位,也就是包含href属性

3.partial_ink_text传的内容必须是唯一的,否则页面定位到的元素太多

4.tag_name用标签名定位,一般不使用,同名太多

UI自动化和selenium相关以及八大定位的更多相关文章

  1. ui自动化之selenium操作(三)xpath定位

    xpath 的定位方法,非常强大.使用这种方法几乎可以定位到页面上的任意元素. 1. 什么是xpath? xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们 ...

  2. ui自动化之selenium操作(二)定位元素-简单操作

    1. 将浏览器最大化 这里拿chrome举例,但是我在执行的时候一直报错,被坑了好久; 解决办法: 这是因为chromedriver是和chrome一一对应的,不兼容的版本就会报错: 所有chrome ...

  3. ui自动化之selenium操作(五)简单元素操作--续

    1. 多窗口切换 有时候需要在多窗口切换,webdriver提供了switch_to_window()方法支持切换窗口: from selenium import webdriver import o ...

  4. web自动化:selenium原理和元素定位(一)

    一. Selenium2 WebDriver 当Selenium2.x提出了WebDriver的概念后,它提供了完全另外的一种方式与浏览器交互 那就是利用浏览器原生的API,封装成一套更加面向对象的S ...

  5. ui自动化之selenium操作(四)简单元素操作

    1. clear() clear()方法用于清除文本输入框内的内容:一般输入框中都有默认文字,如果不清空有可能会导致字符拼接: browser.find_element(By.ID,"use ...

  6. ui自动化之selenium操作(一)环境搭建

    1. python安装: 前面步骤可以看到,这里就不赘述了(我们在这里安装的是python3) 2. selenium安装: 前面我们都已经安装好pip了,所以这里咱们直接进入到python安装路径的 ...

  7. UI自动化(selenium+python)之元素定位的三种等待方式

    前言 在UI自动化过程中,常遇到元素未找到,代码报错的情况.这种情况下,需要用等待wait. 在selenium中可以用到三种等待方式即sleep,implicitly_wait,WebDriverW ...

  8. UI自动化selenium

    1.什么是UI自动化?模拟人用代码的方式去操作页面2.为什么要做UI自动化?后期迭代的时候,老功能比较多,人工维护成本较大,重复性工作较多,这个时候就考虑因为UI自动化3.什么时候做UI自动化?项目稳 ...

  9. Python Selenium 搭建Web UI自动化

    Python搭建UI自动化环境 下载Python3 Python官网 PyCharm 环境配置 安装Python 勾选Add Python to PATH,一直下一步. 验证:CMD输入Python ...

随机推荐

  1. Tyvj-1338 QQ农场

    P1338 QQ农场 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Sandytea前段时间沉迷于QQ农场中……一天夜里,他梦见来到好友X的农场上…… 描述 ...

  2. 微信授权登录-微信公众号和PC端网站

    https://blog.csdn.net/qq_34664239/article/details/79107529 一.微信公众号授权登录——微信公众平台 微信授权登录,并调用后台接口,获取用户信息 ...

  3. Top 10 open source projects of 2015

    Top 10 open source projects of 2015 Posted 15 Dec 2015Jen Wike Huger (Red Hat)Feed 188 up 31 comment ...

  4. H3C V.35接口线缆

  5. HDU 1251 裸的字典树、入门题

    裸的字典树还是挺简单的. 四个基本操作建立.查找.插入.删除 建立新结点我是用的c++中 new操作.当然也可以用malloc,都方便 不过指针阿.地址阿.这其中关系什么的我貌似还不是很清楚阿. 因为 ...

  6. PHP实现微信小程序人脸识别刷脸登录功能

    首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片 然后我们在后台写刷脸登陆的接口login我们要把拍照获取的照片存储到服务器 public function login(){    // ...

  7. H3C DHCP服务器可选配置

  8. 备战省赛组队训练赛第十六场(UPC)

    传送门 题解: by 烟台大学 (提取码:8972)

  9. vue element UI el-table 表格调整行高的处理方法

    这是我在工作项目中遇到的问题,我想将标记处下方的表格高度调低一点,也就是想实现下面的这个效果: 代码调整如下: 说明: 缩小:行高到一定程度之后便不能缩小. 好像最小35px.各位可以试一下. 升高: ...

  10. HDU 6662 Acesrc and Travel (换根dp)

    Problem Description Acesrc is a famous tourist at Nanjing University second to none. During this sum ...