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

  • 解决的问题:

    • 回归测试

    • 压力测试

    • 兼容性测试

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

  • 自动化测试分类

    • 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. java kafka

    https://blog.csdn.net/panchang199266/article/details/82113453 安装部署 scala语言开发 + java

  2. JS创建SVG的问题

    在线编辑的一个东西,用的是js+svg,遇到了这样一个问题,就是说我监听页面的单击事件,然后记录下来鼠标单击的位置,给svg添加子标签,然后页面上展示出来 说的可能不大清楚,上代码吧 <!DOC ...

  3. 19 使用Vue实例的render方法渲染组件

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. CentOS 6.5下快速搭建ftp服务器

    来源:Linux社区 作者:Linux CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了v ...

  5. eclipse跳转到exitCurrentThread

    1.在使用Eclipse时,用Debug模式运行springboot项目,结果总是在项目快启动成功的时候,跳转到exitCurrentException这个地方 2.方法:Eclipse->[P ...

  6. js实现发送验证码倒计时效果

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. [笔记] 三元环 && 四元环计数

    Thanks to i207M && iki9! 三元环计数 无向图的三元环计数 我们首先需要对无向边按一定规则定向: 设 \(in[u]\) 表示 \(u\) 的度数 若 \(in[ ...

  8. PHP全栈学习笔记31

    伪类:未被访问状态,已被访问状态,鼠标悬停状态,活动状态 :link 未被访问的链接添加样式 :visited 向已被访问链接添加样式 :hover 向鼠标悬停时向元素添加样式 :active 向被激 ...

  9. 如何实现一个 windows 桌面动态壁纸

    ​ 更新: 2018/08/31 WS_MOUSE_LL 钩子,实现底层壁纸交互效果. 一.介绍 国内玩家第一次看到动态壁纸,都是出于一款来自 Wallpaper Engine 的 Steam 程序. ...

  10. jsp页面中的EL表达式不被解析org.apache.jasper.JasperException: Unable to convert string [${item.createtime}]

    https://m.imooc.com/qadetail/277572 web.xml的版本是不是2.3, 如果是2.3,在jsp页面开头添加<%@ page isELIgnored=" ...