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

  • 解决的问题:

    • 回归测试

    • 压力测试

    • 兼容性测试

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

  • 自动化测试分类

    • 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. 个性化召回算法实践(二)——LFM算法

    LFM算法核心思想是通过隐含特征(latent factor)联系用户兴趣和物品,找出潜在的主题和分类.LFM(latent factor model)通过如下公式计算用户u对物品i的兴趣: \[ P ...

  2. python中json序列化时汉字变成编码的解决方式

    我们在使用json模块时,如果被序列化对象中不包含汉字,当然没有任何问题,但是有汉字会被编译成unicode码: import json dic = {","sex":& ...

  3. 1204 中间件以及cookie,session

    目录 一 .cookie与session原理 1.cookie 操作 1.1 设置cookie set_cookie 1.2 获取cookie request.COOKIES.get('k1') 1. ...

  4. Linux环境下安装mysql5.6(二进制包不是rpm格式)

    一.准备: 1.CentOS release 6.8 2.mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz 3.Linux下MySQL5.6与MySQL5.7安装方法 ...

  5. Java:JVM垃圾回收(GC)机制

    JVM垃圾回收算法 1.标记清除(Mark-Sweep) 原理: 从根集合节点进行扫描,标记出所有的存活对象,最后扫描整个内存空间并清除没有标记的对象(即死亡对象)适用场合: 存活对象较多的情况下比较 ...

  6. Selenium常用API的使用java语言之12-定位一组元素

    在第(五)节我们已经学习了8种定位方法, 那8种定位方法是针对单个元素定位的, WebDriver还提供了另外8种用于定位一组元素的方法. import org.openqa.selenium.By; ...

  7. Selenium常用API的使用java语言之5-selenium元素定位

    1.selenium定位方法 Selenium提供了8种定位方式. id name class name tag name link text partial link text xpath css ...

  8. Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证

    Python tkinter 实现简单登陆注册 最终效果 开始界面 ​ 注册 登陆 ​ 源码 login.py # encoding=utf-8 from tkinter import * from ...

  9. 008——MATLAB-xlswrite的使用方法

    (一)参考文献:https://blog.csdn.net/liangjiubujiu/article/details/80455753 以矩阵A=[1 2 3 4;5 6 7 8]为例进行介绍 例1 ...

  10. sql server 计算属性,计算字段的用法与解析

    SQL学习之计算字段的用法与解析   一.计算字段 1.存储在数据库表中的数据一般不是应用程序所需要的格式.大多数情况下,数据表中的数据都需要进行二次处理.下面举几个例子. (1).我们需要一个字段同 ...