ie 无人操作自动关闭_第四部分:web自动化测试

本文介绍了Web自动化测试的重要性和优势,并详细讲解了Selenium IDE的使用,包括其安装、功能和常见命令。此外,还探讨了WebDriver的概念、支持的浏览器以及在Python环境中的应用。最后,文章提供了元素定位的各种方法,如ID、Name、XPath等,为初学者提供了全面的入门指导。
摘要由CSDN通过智能技术生成

网页自动化测试

  1. 自动化测试的问题
  2. 解决回归测试(项目在发布新版本之后对项目之前的功能进行验证)
  3. 解决压力测试(多用户同时去操作软件,统计软件服务器处理多用户请求的能力)
  4. 解决兼容测试(测不同的浏览器)
  5. 提高测试效率,保证产品质量
  6. 自动化测试相关知识(手工测试完毕后进行)

手工测试:就是由人一个一个输入用例,然后观察结果

自动化测试的所属分类(代码可显性角度分类):

  1. 黑盒测试(功能测试)
  2. 灰盒测试(接口测试)
  3. 白盒测试(单元测试)

注意:web自动化测试属于黑盒测试、功能测试

优点:

  1. 较少的时间运行跟多的测试用例
  2. 自动化脚本可以重复运行
  3. 减少人为失误
  4. 测试数据储存

缺点:

  1. 不能代替手工操作
  2. 手工测试比自动化测试发现的缺陷更多
  3. 测试人员技能要求

误区:

  1. 自动化完全代替手工测试
  2. 自动化测试一定比手工测试厉害
  3. 自动化可以发现更多的BUG

自动化测试分类(测试类容分类):

  1. web-(UI)自动化测试
  2. 接口—自动化测试
  3. 移动(app)—自动化测试
  4. 单元测试—自动化测试

自动化测试概念:让程序认为代替验证web项目功能的过程

适合做自动化测试的web项目:

  1. 需求变动不频繁
  2. 项目周期长
  3. 项目需求回归测试

主流工具:

Web自动化测试:Selenium(硒)、Robot framework

APP端自动化测试:APPIUM、monkeyrunner、UIautomation

pc客户端(win32)自动化测试:QTP

接口自动化测试:jmeter、postman、httpunit、RESTclient

云平台测试:testin、testbird

性能测试:jmeter、loadrunner

  1. Selenium

特点:

  1. 开源软件
  2. 跨平台
  3. 核心功能
  4. 多语言
  5. 成熟稳定
  6. 功能强大
  7. Selenium IDE[课堂教学用火狐35版本,插件用的是2.9.1版本]

目的:

  1. 使用Selenium IDE录制脚本,体验自动化的魅力
  2. 把录制的脚本转化为代码语言

概念:

是一个firefox插件,用于记录和播放用户与浏览器的交互

安装方式:下载火狐浏览器,工具,添加附件,搜索selenium IDE,

94adce140e87007b96d73bfe9a190753.png

注意:一定要使用火狐35版本和2.9.1的插件,不然效率无比的地下,还垃圾错误

.dmg是mac系统的压缩文件,打开时需要下载haozip或者macdrive.

  1. 定位调试插件 firebug***重要***[版本需要2.0.19]

作用:是一个火狐的插件,能够调试所有网站语言,同时可以快速定位HTML页面中的元素

作用:定位元素(获取元素的定位,查看元素属性)

基本命令:

1、pause(waitTime)

作用:暂停脚本运行

WaitTime:等待时间,单位为毫秒ms,//Target=1000

  1. go back()

作用:模拟单机浏览器的后退按钮

提示:由于没有参数,所以Tartget和Value不可填

  1. refresh()

作用:刷新当前网页

提示:由于没有参数,所以Tartget和Value不可填

  1. click(locator)

作用:单机一个链接、按钮、复选框或者单选按钮

提示:如果该单机时间导致新的页面加载,命令就会加上后缀“andwait”

即clickandwait,或者waitForpageToload

  1. type(locator,value)——————必定为两个参数

作用:向指定输入域中输入指定值;也可为下拉框、复选框和单选框按钮赋值

Target:元素的定位表达方式

Value:要输入的值

  1. close()

作用:模拟用户单击窗口的关闭按钮

提示:由于没有参数,所以Tartget和Value不可填

  1. webdrive(selenium2.0)[全章的大重点,十颗星星那么的重点]

基础知识:selenium2.0=selenium1.0+webdrive

概念:webdrive(selenium2.0)是一种用于web应用程序的自动化测试软件,它提供了一套友好的API,webdriver完全就是一套类装,不依赖任何测试框架,除了必要的浏览器驱动

支持浏览器的种类:

  1. firefox(fireDriver)
  2. IE(internetExploerDriver)
  3. Oprear(prearDriver)
  4. Chrome(ChromeDrive)
  5. Safari(SafarDrive)
  6. Htmlunit(HtmlunitDrive)

提示:firefox、Chrome:对元素定位和操作有良好的支持,同时对JAVAScrip支持也非常友好 ; IE:只能在windows平台运行,所有浏览器中运行速度最慢;Htmlunit:无GUL(界面)运行,运行速度最快

推荐原因:

  1. selenum IDE(已学习)
  2. Firebug(已学习)
  3. 对webDriver API支持良好

webDriver API支持哪些语言调用:

1、java

2、python

3、c#

为什么要学习webDriver:

  1. 自动化测试概念
  2. webDriver -定位元素(8种)
  3. webDriver -操作元素

基于python环境搭建(不推荐使用离线包):

  1. windows系统
  2. Python3.5以上版本(先搭建python开发环境)
  3. 安装selenium包
  4. 浏览器
  5. 安装pycharm

安装:pip install selenium==2.48.0

  1. pip:通用的python包管理系统,提供了对python包的查找、下载、安装、卸载等功能
  2. Install:安装命令
  3. selenium==2.48.0制定了安装的版本(如果不指定本版默认是安装最新版本)

卸载:pip uninstall selenium

查看当前版本:pip show selenium

推荐的浏览器:

  1. firefox 48版本以上—selenium 3.x+firefox驱动—geckodriver
  2. firefox 48版本以下—selenium 2.x (内置驱动)

注意:浏览器版本要和驱动版本一致

  1. webdrive-元素的定位

元素定位方式汇总、分类:

  1. id、name、class_name:元素属性定位
  2. Tag_name:标签名称定位
  3. Link_text、partial_link_text:标签的超链接定位
  4. Xpath:元素路径定位
  5. Css:css选择器定位
  6. 实例操作——ID/name

ID元素属性定位实例需求:

  1. 打开网站,使用id定位,自动填写(账号:1156779018 密码:wangyitian610)
  2. 填写完3秒后关闭浏览器窗口

步骤及代码分析:

# 导入selenium包
from selenium import webdriver
from time import sleep
# 实例化浏览器
driver = webdriver.Firefox()
# 打开指定URL
# url = "file:///H:/%E4%BB%A3%E7%A0%81/%E8%A1%A8%E5%8D%95.html"
# 网址也可以写成以下形式
url = "H:代码表单.html"
# 也可以如下形式
# url = r"H:代码表单.html"
# r作用:被r修饰的字符串。其中的转义符不做转义使用
driver.get(url)
# 找到用户名文本框—定位元素(用户)
element = driver.find_element_by_id("ppp")
# 传输指定文本框数值
element.send_keys("1156779018")
# 找到用户名文本框—定位元素(密码)
pwd = driver.find_element_by_id("uuu")
# 传输指定文本框密码
pwd.send_keys("wangyitian610")
#暂停三秒
sleep(3)
# 关闭浏览器
driver.quit()

/:斜杠 数学运算 :目录结构

Class_name元素属性定位:

说明:用法和id、name类似

定位方法:find_element_by_class_name()

tag_name元素属性定位:

说明:html本质就是有不同的tag(标签)组成,而每一个都是指同一类,所以tag定位效率低

一般不建议使用;tag_name定位就是通过标签名字来定位

定位方法:find_element_by_tag_name() 当有多个标签是,只处理第一个标签

link_text定位:

说明:link_text定位与前面四个定位有所不同,专门用来定位超链接文本<a>xxx</a>

实例需求:

  1. 打开网站,使用id定位,使用link_text定位<a>xxx</a>链接的网站
  2. 填写完3秒后关闭浏览器窗口

定位方法:find_element_by_link_text()

注意:需要输入<a>xxx</a>内文本的全部

点击————>click

Partial_link_text定位:

说明:需要传入<a>xxx</a>局部文本,能表达唯一性

定位方法:find_element_by_partial_link_text()

find_elements_by_xxx()

作用:

  1. 查找符合定位的所有元素
  2. 返回的定位元素格式为列表或者数组

说明:列表数据格式的读取需要下标(从0计数)

例子:driver.find_elements_by_tag(“input”)[1]

  1. Xpath定位

学习原因:

  1. 在实际的项目中并没有id、name、class属性
  2. id、name、class属性值随着动态获取、刷新或加载而变化

绝对路径:单旦斜杠/开头,中间不能跳跃标签元素

相对路径:以双斜杠//开头,后边必须要跟标签名称

  1. xpath路径内使用属性时,必须要用@修饰
  2. css定位

常用策略:

  1. id选择器:driver.find_by_css_selector(“#id的值”)
  2. Class选择器:driver.find_by_css_selector(“.id的值”)
  3. 元素选择器:driver.find_by_css_selector(“标签名称”)
  4. 属性选择器:driver.find_by_css_selector(i=“标签名称”)
  5. 层级选择器::driver.find_by_css_selector(p[id=”1”]>inoput)

延申:

  1. input[type^=”p”] :type属性以字母p开头的标签
  2. input[type^=”$”] :type属性以字母结尾的标签
  3. input[type*=”w”] :type属性以包含字母w的标签

06e1fe4f6533ea3b7f94c8bca46e5143.png
  1. css定位

51d5fb1d4e23d3d0e7e741bd1e44654f.png

导入包:ctrl+alt+空格

查看类的源代码:ctrl,鼠标选中元素名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值