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

  • 解决的问题:

    • 回归测试

    • 压力测试

    • 兼容性测试

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

  • 自动化测试分类

    • 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. 【BZOJ2324】[ZJOI2011]营救皮卡丘 给定起点最小权K链可相交覆盖

    #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef ][]; int main() { i ...

  2. orm多表的创建和基于对象的查询

    创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系( ...

  3. Appium自动化测试教程-自学网-monkey日志管理

    日志管理作用 Monkey日志管理是Monkey测试中非常重要的一个环节,通过日志管理分析,可以获取当前测试对象在测试过程中是否会发生异常,以及发生的概率,同时还可以获取对应的错误信息,帮助开发定位和 ...

  4. Linux 查看系统配置参数

    原文链接:http://www.cnblogs.com/aric2016/p/10971690.html 查看 cpu信息: cat /proc/cpuinfo 查看内存信息: grep MemTot ...

  5. MySQL服务优化参数设置参考

    l 通用类: key_buffer_size 含义:用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写). 影响:对于MyISAM表的影响不是很大,MyISAM会使用系统的缓存来存储 ...

  6. MAC OS系统替换homebrew使用阿里云的镜像源

    MAC OS系统替换homebrew使用阿里云的镜像源 2019-03-03 15:13:42 南通SEO 阅读数 2024更多 分类专栏: 解决方案   MAC OS系统替换homebrew使用阿里 ...

  7. luogu 3200 [HNOI2009]有趣的数列 卡特兰数+质因数分解

    打个表发现我们要求的就是卡特兰数的第 n 项,即 $\frac{C_{2n}^{n}}{n+1}$. 对组合数的阶乘展开,然后暴力分解质因子并开桶统计一下即可. code: #include < ...

  8. P3478 [POI2008]STA-Station

    题目描述 The first stage of train system reform (that has been described in the problem Railways of the ...

  9. qml 3d 纪念那些曾经爬过的坑

    1.使用多position画图时,图形不受控制的问题? 在变量属性设置时Attribute中的attributeBaseType 数据类型一定要和 Buffer中data 数据类型一定要相同. 例如  ...

  10. 微信小程序客服系统

    微信公众平台 点击 客服 添加 微信文档-接收消息和事件   在页面中使用 第三方客服系统 芝麻小客服 填写对应的 appid && AppSecret 等信息 微信文档-接收消息和事 ...