selenium2 介绍+简单实战
selenium学习
- selenium 介绍
- selenium简介
- selenium优点
- selenium原理
- 测试环境的搭建
- 流程
- 编写第一个自动化脚本
- 逐行解释下:
selenium 介绍
selenium简介
selenium1.0 介绍:
简介—Selenium1.0主要用于web应用程序的自动化测试当不局限于此,还支持所有基于web的管理任务自动化
特点—开元免费、支持多浏览器多平台支持、支持多语言、简单灵活
组成—
① seleniumIDE是嵌套到Firefox浏览器中的一个插件,实现简单的浏览器的操作的录制与回放功能
用到的场景—发现bug后录制下来方便开发人员更容易的重现bug,IDE录制脚本可以转换为多种语言
② Selenium gride 是一种自动化测试辅助工具,利用当前计算机硬件设备,加快web-app的功能测试
③ Selenium RC 支持多种不同语言编写的自动化测试脚本,通过seleniumRC的服务器作为代理服务器去访问应用从而达到控制浏览器的目的。
通过客户端编写脚本,来控制selenium中的service的库, selenium service负责控制浏览器的行为, selenium services主要分为三个部分launcher、httpProxy和Core,selenium Core就是一堆JS函数的集合通过这些JS函数实现程序对浏览器的操作,launcher用于启动浏览器,把Core加载到浏览器页面当中,并把浏览器的代理设置为selenium Server的Http Proxy
selenium2.0介绍:
1.selenium2.0 = selenium1.0 + WebDriver
2.合并的原因:seleniun支持广泛的浏览器,webdrive有出色的api
3.webdriver通过原生浏览器支持 或者浏览器扩展来直接控制浏览器,webdriver针对各个浏览器而开发,取代了嵌入到被测web应用中的javascript ,支持更高级的测试,避免了js安全模型导致的限制,webdriver还利用操作系统的调用,模拟用户输入。
简单的说:selenium是Python中的一个模块,是开源的自动化测试工具集,是一个对浏览器自动化操作的框架,主要用于web应用程序的自动化测试,
selenium优点
(1)开源免费
(2)多浏览器支持(可控制火狐、谷歌、IE等)
(3)多语言支持(Python、Java、c#)
(4)多平台支持(Linux、Windows、mac)
selenium原理
- 客户端建立与 selenium-RC server 的连接。
- Selenium RC Server 启动一个浏览器(或是已经使用中),并注入 JS 代码
- 将 Selenium 代码传到客户端的 Selenium-Core 中。
- Selenium-Core 翻译并解析执行用户录制的操作。
- 让代理 Server 进行通讯
- Remote Control Server 负责跟远程 Web 应用服务器进行通讯。
- 操作完成,显示结果,并执行下一指令。
测试环境的搭建
- 安装python
- 安装pycharm 或者直接安装 ActivePython
- 如果有必要,安装浏览器驱动
1、将webdriver驱动文件放在Python安装目录下http://chromedriver.storage.googleapis.com/index.html谷歌浏览器驱动地址
2、https://github.com/mozilla/geckodriver/releases/
火狐浏览器驱动地址
http://selenium-release.storage.googleapis.com/index.html
流程
① 导入selenium模块
② 调用selenium的浏览器驱动,获取浏览器句柄(driver)并启动浏览器
③ 通过句柄访问百度URL
④ 通过句柄操作页面元素(例如:百度输入框和按钮)
⑤ 通过句柄关闭浏览器
编写第一个自动化脚本
"""编写第一个自动化测试脚本"""
# coding=utf-8
from selenium import webdriver
import time
dr = webdriver.Firefox()
dr.get('https://www.baidu.com/')
dr.find_element_by_id('kw').send_keys("selenium2")
dr.find_element_by_id("su").click()
time.sleep(5)
dr.quit()
逐行解释下:
# coding=utf-8
# _*_coding:utf-8_*_
指定编码类型,防止乱码,python3可以忽略这个问题。
2.导入webdriver包使用webdriver API ,python中模块的导入有两种方式 from……import……
或者import……
from selenium import webdriver
3.将 webdriver中的Firefox对象赋值给变量dr ,获得了Firefox对象才能驱动浏览器。如有必要安装相应浏览器驱动
dr = webdriver.Firefox()
4.通过get()向浏览器发送网址(url)
dr.get('https://www.baidu.com/')
5.通过页面元素定位,模拟在搜索栏中输入selenium2,并点击搜索
dr.find_element_by_id('kw').send_keys("selenium2")
dr.find_element_by_id("su").click()
6.关闭浏览器以及相应驱动。
dr.quit()
将会为你持续跟新哦!!可以支持一下博主哦!!!
selenium2 介绍+简单实战相关推荐
- selenium2 python自动化测试实战(回归测试)
selenium2 python自动化测试实战 最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重 ...
- python自动化测试实战pdf无涯_【独家发布】Selenium2 Python自动化测试实战 第二版...
Selenium2 Python自动化测试实战 第二版 第1 章自动化测试基础............................................................. ...
- ssm 异常捕获 统一处理_SpringMVC 统一异常处理介绍及实战
背景 什么是统一异常处理 目标 统一异常处理实战 用 Assert(断言) 替换 throw exception 定义统一异常处理器类 扩展 总结 <Java 2019 超神之路> < ...
- Python 进阶之路 (八) 最用心的推导式详解 (附简单实战及源码)
什么是推导式 大家好,今天为大家带来问我最喜欢的Python推导式使用指南,让我们先来看看定义~ 推导式(comprehensions)是Python的一种独有特性,推导式是可以从一个数据序列构建另一 ...
- Nancy简单实战之NancyMusicStore(四):实现购物车
原文:Nancy简单实战之NancyMusicStore(四):实现购物车 前言 上一篇,我们完成了商品的详情和商品的管理,这一篇我们来完成最后的一个购物车功能. 购物车,不外乎这几个功能:添加商品到 ...
- 《推荐系统笔记(六)》svd在推荐系统中的应用推广(FunkSVD,BiasSVD以及SVD++)及简单实战(surprise库)
前言 奇异值分解(SVD)可以将任意矩阵分解成两个方阵和一个对角矩阵的乘积.借助于SVD,我们可以将推荐系统中的用户-评分矩阵进行分解,通过推广的SVD方法(FunkSVD,BiasSVD和SVD++ ...
- Qinq技术介绍与实战
说明:本文介绍部分是我在网络收集整理并添加提供. Qinq技术介绍与实战 Qinq介绍 Qinq就是为用户提供一种较为简单的二层×××隧道.最核心的思想就是将用户私网VLAN tag封装到公网VLAN ...
- Netty介绍与实战(三)之粘包拆包
一.传统NIO架构 step1. 我们传统的nio架构已经解决了多路复用,零拷贝等问题,已经十分优秀了,那为什么我们现在Netty如此火热呢? 1) 首先他使用简单,基本上都是模板化,我们可以更专注业 ...
- STM32之震动传感器、继电器介绍及实战
目录 一.震动传感器介绍及实战 二.编程代码实现 1.gpio.c---------初始化GPIO口引脚函数 2.编写中断服务函数 3.用外部中断共用入口函数,来调用外部中断处理回调函数 4.编写外部 ...
- SpringBoot 整合WebSocket 简单实战案例
前言 这个简单实战案例主要目的是让大家了解websocket的一些简单使用. 另外使用stomp方式的: <Springboot 整合 WebSocket ,使用STOMP协议 ,前后端整合实战 ...
最新文章
- opencl 实例源码
- java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍
- asp.net MVC分页
- (收藏)Turbo C 2.0、Borland C++库函数及用例
- 13 | 线性排序:如何根据年龄给100万用户数据排序?
- 手把手教你如何罗列提纲,避开这3个坑,提升写作效率50%
- 使用jfreechart在jsp页面柱状图统计
- 图像语义分割(4)-SegNet:深度全卷积编解码结构
- Linux终端(一)
- 线程上下文类加载器(Thread Context ClassLoader)
- PilotEdit 破解版下载|PilotEdit(文本编辑器) 中文破解版 v11.8下载(含注册机)
- 2016matlab打开toolbox,MATLAB2016添加工具箱toolbox方法,有截图
- 小游戏《堆木头》开发
- Photoshop透明度网格颜色设置方法
- springboot毕设项目水族馆观光网站e8iy4(java+VUE+Mybatis+Maven+Mysql)
- 北大青鸟资源管理系统
- AI:人工智能领域算法思维导图集合之有监督学习/无监督学习/强化学习类型的具体算法简介(预测函数/优化目标/求解算法)、分类/回归/聚类/降维算法模型选择思路、11类机器学习算法详细分类之详细攻略
- 程序员该如何应对大龄危机
- 杂谈:新浪微博客户端的不足
- 芯片失效分析,你可以怎么办?