自动化测试
  • 概念:由程序代码代替人工完成验证系统功能的过程

  • 解决的问题:

    • 回归测试

    • 压力测试

    • 兼容性测试

    • 提高测试效率,提升产品质量

  • 自动化测试分类

    • web自动化测试

    • 移动自动化测试

    • 接口自动化测试

    • 单元测试

 

  • 可行性分析:什么样的web项目适合做自动化测试

    • 需求变动不频繁

    • 项目周期要长(通常半年以上)

    • 项目需要回归测试

 

环境搭建:
  • python环境

  • selenium包安装

    • 在线安装:

      • pip install selenium 默认下载的最新版本

      • pip install selenium==“版本号”

    • 查看selenium信息

      • pip show selenium

      • pip list 查看python第三方包信息

    • 卸载

      • pip uninstall selenium

    • 离线安装步骤

      • 下载外部包

      • 拷贝解压好的离线包到.\python\Lib\site-packages

      • 打开cmd,进入.\python\Lib\site-packages目录

      • 执行python setup.py instal

  • 安装浏览器

  • 安装浏览器驱动

  

入门案例

#1.导包
import time
from selenium import webdriver
#2.实例化浏览器驱动对象
driver = webdriver.Chrome()
# driver =webdriver.Firefox() #3.打开测试网址
driver.get('测试地址')
#4.业务操作
time.sleep(3)
#5.关闭浏览器
driver.quit()

 八大元素定位

By.id  driver.find_element_by_id(id属性值)

By.name  driver.find_element_by_name(name)

By.class_name  driver.find_element_by_class_name(class其中一个属性值)

By.tag_name  driver.find_element_by_tag_name("")

超链接定位  

  driver.find_element_by_link_text(元素完整文本信息)
  driver.find_element_by_partial_link_text(元素局部文本信息)

Xpath定位  driver.find_element_by_xpath(xpath的表达式)

  //*[@属性名='属性值']

拓展:

重点需要掌握的方法://*[text()="xxx"] 文本内容是xxx的元素
定位到部分文本:断言用 find_element_by_xpath('//button/span[contains(text(), "指定文本内容")]').click()
"""
注意:xxx这个参数是元素的全部文本信息
"""
//*[contains(@attribute,'xxx')] 属性中含有xxx的元素
//*[starts-with(@attribute,'xxx')] 属性以xxx开头的元素

CSS定位策略

  #id选择 表达式:#id属性值


#class选择器 表达式:.class其中一个属性值 #元素选择器 表达式:标签名 #属性选择器 表达式:[属性名='属性值'] 标签名[属性名='属性值']
#标签名[属性名='属性值'][属性名1='属性值1']
#注意的:多个属性连接的时候中括号中间没有空格 #层级选择
#格式1:element1>element2 通过element1来定位element2,并且#element2必须为element1的直接子
"#pa>input[name='userA']"
#格式2:element1 element2 通过element1来定位element2,并且#element2为element1的后代元素
"fieldset input[name='userA']" # 拓展

input[type^='p'] type属性以p字母开头的元素
input[type$='d'] type属性以d字母结束的元素
input[type*='w'] type属性包含w字母的元素

 常见元素操作

#鼠标右键点击事件
element.click()
#模拟输入:value表示输入的字符串信息
element.send_keys(value)
#清除信息
element.clear()
浏览器操作
#窗口最大化(重点)
driver.maximize_window()
#设置窗口大小
driver.set_window_size(width,height)
#设置窗口位置
driver.set_window_position(x,y) #关闭当前驱动页面
driver.close()
#关闭整个浏览器
driver.quit()
#获取当前页面标题
driver.title
#获取当前页面地址
driver.current_url
获取元素信息
获取信息 方法 备注
获取元素文本信息 element.text  
获取元素大小 element.size  
获取元素属性信息 element.get_attribute('元素属性值')  
判断元素是否可见 element.is_displayed() span标签,权限
判断元素是否可用 element.is_enabled() 例:购物车减少数量按钮
判断元素是否选中 element.is_selected() 例:注册协议是否选中

web自动化01-自动化解决的问题-环境搭建-元素定位的更多相关文章

  1. [小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建

    在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识. ...

  2. Django 01 django基本介绍及环境搭建

    Django 01 django基本介绍及环境搭建 #http服务器 #用来接收用户请求,并将请求转发给web应用框架进行处理 #Web应用框架 #处理完请求后在发送给http服务器,http服务器在 ...

  3. 总结Selenium自动化测试方法(二)测试环境搭建

    (接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...

  4. Appium+python自动化16-appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...

  5. Java Web项目实战第1篇之环境搭建

    写在前面的话 从今天开始一个Java Web实战项目,参考自 http://blog.csdn.net/eson_15/article/details/51277324 这个博客(非常感谢博主的分享精 ...

  6. 03 Mybatis:01.Mybatis课程介绍及环境搭建&&02.Mybatis入门案例

    mybatis框架共四天第一天:mybatis入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 -------------------------------------- ...

  7. Java Web开发SpringMVC和MyBatis框架开发环境搭建和简单有用

    1.下载SpringMVC框架架包,下载地址: 点击下载 点击打开地址如图所看到的.点击下载就可以 然后把相关的jar拷贝到lib下导入 2.MyBatis(3.4.2)下载 X-Amz-Algori ...

  8. Web安全测试学习笔记 - DVWA+PHP环境搭建

    DVWA(Damn Vulnerable Web Application),是一个用PHP编写的,作为Web安全测试练习平台的合法环境(毕竟咱不能为了练习就随便找个网站去攻击...),也就是俗称的靶场 ...

  9. JavaSE 学习笔记01丨开发前言与环境搭建、基础语法

    本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...

随机推荐

  1. 前端学习笔记--Visual Studio Code安装及中文显示

    1.在官网https://code.visualstudio.com/下载对应的版本: 2.安装 一路点击下一步,选中  添加到PATH后,安装. 安装成功,可以直接打开使用: 把界面改成中文显示: ...

  2. 04-Dockerfile介绍与使用

    什么是dockerfileDockerfile是由一系列命令和参数构成的脚本,这些命令用一基础镜像并最终创建一个新的镜像.1.对于开发人员:可以为开发团队提供一个完全一致的开发环境.2.对于测试人员: ...

  3. jquery判断input选中事件

    需求是默认第一个是选中状态,点第二个选中,第一个取消然后点支付时,跳转新页面 $(function(){ $(".nl_zhifutj a").click(function(){ ...

  4. 四十七.iptables防火墙 filter表控制 扩展匹配 nat表典型应用

    1.iptables基本管理 关闭firewalld,开启iptables服务 查看防火墙规则 追加.插入防火墙规则 删除.清空防火墙规则   1.1 关闭firewalld,启动iptables服务 ...

  5. 三十.数据库服务概述 构建MySQL服务器 、 数据库基本管理 MySQL数据类型

    mysql50:192.168.4.50 1.构建MySQL服务器 安装MySQL-server.MySQl-client软件包 修改数据库用户root的密码 确认MySQL服务程序运行.root可控 ...

  6. 初识QuartusII 9.0(破解,半加器的仿真,综合:上)

    由于在意大利期间,用的xilinx公司的ZYBO板子,相应的软件用ISE,SDK.回国买了altera公司的板子,自然也要学习国内较流行的软件(TB大西瓜家,因此相关例程也是大部分引用他家).Quar ...

  7. [other] Div

    https://www.luogu.org/problemnew/show/U16765 解法一 随机输出一组合法解. 复杂度 O(1) 预计得分 10~??? 解法二 看完题目基本能想到大力贪心,通 ...

  8. laravel-china 镜像停止服务

    php 的很多开发都会用到composer.然后国内的镜像又慢,很多人会选择用laravel-china的镜像. 之前一直用的很好.今天突然发现不能composer update.出现报错.WTF!! ...

  9. yii中异步验证和自定义方法验证

    一.异步验证,一般使用ajax验证唯一性较多 1.model开启验证[['mobile_id','ip'], 'unique','message'=>Yii::t('app','E10010') ...

  10. Vue的学习--遇到的一些问题和解决方法(二)

    1.关于图片路径问题 1.关于图片路径问题 在.vue的html中可以直接使用相对路径,但是从浏览器后台可以看出,最后路径是自行做了替换的.如果需要在js文件中使用,则需要自己使用require进行替 ...