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 应用服务器进行通讯。
  • 操作完成,显示结果,并执行下一指令。

测试环境的搭建

  1. 安装python
  2. 安装pycharm 或者直接安装 ActivePython
  3. 如果有必要,安装浏览器驱动
    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 介绍+简单实战相关推荐

  1. selenium2 python自动化测试实战(回归测试)

    selenium2 python自动化测试实战 最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重 ...

  2. python自动化测试实战pdf无涯_【独家发布】Selenium2 Python自动化测试实战 第二版...

    Selenium2 Python自动化测试实战 第二版 第1 章自动化测试基础............................................................. ...

  3. ssm 异常捕获 统一处理_SpringMVC 统一异常处理介绍及实战

    背景 什么是统一异常处理 目标 统一异常处理实战 用 Assert(断言) 替换 throw exception 定义统一异常处理器类 扩展 总结 <Java 2019 超神之路> < ...

  4. Python 进阶之路 (八) 最用心的推导式详解 (附简单实战及源码)

    什么是推导式 大家好,今天为大家带来问我最喜欢的Python推导式使用指南,让我们先来看看定义~ 推导式(comprehensions)是Python的一种独有特性,推导式是可以从一个数据序列构建另一 ...

  5. Nancy简单实战之NancyMusicStore(四):实现购物车

    原文:Nancy简单实战之NancyMusicStore(四):实现购物车 前言 上一篇,我们完成了商品的详情和商品的管理,这一篇我们来完成最后的一个购物车功能. 购物车,不外乎这几个功能:添加商品到 ...

  6. 《推荐系统笔记(六)》svd在推荐系统中的应用推广(FunkSVD,BiasSVD以及SVD++)及简单实战(surprise库)

    前言 奇异值分解(SVD)可以将任意矩阵分解成两个方阵和一个对角矩阵的乘积.借助于SVD,我们可以将推荐系统中的用户-评分矩阵进行分解,通过推广的SVD方法(FunkSVD,BiasSVD和SVD++ ...

  7. Qinq技术介绍与实战

    说明:本文介绍部分是我在网络收集整理并添加提供. Qinq技术介绍与实战 Qinq介绍 Qinq就是为用户提供一种较为简单的二层×××隧道.最核心的思想就是将用户私网VLAN tag封装到公网VLAN ...

  8. Netty介绍与实战(三)之粘包拆包

    一.传统NIO架构 step1. 我们传统的nio架构已经解决了多路复用,零拷贝等问题,已经十分优秀了,那为什么我们现在Netty如此火热呢? 1) 首先他使用简单,基本上都是模板化,我们可以更专注业 ...

  9. STM32之震动传感器、继电器介绍及实战

    目录 一.震动传感器介绍及实战 二.编程代码实现 1.gpio.c---------初始化GPIO口引脚函数 2.编写中断服务函数 3.用外部中断共用入口函数,来调用外部中断处理回调函数 4.编写外部 ...

  10. SpringBoot 整合WebSocket 简单实战案例

    前言 这个简单实战案例主要目的是让大家了解websocket的一些简单使用. 另外使用stomp方式的: <Springboot 整合 WebSocket ,使用STOMP协议 ,前后端整合实战 ...

最新文章

  1. opencl 实例源码
  2. java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍
  3. asp.net MVC分页
  4. (收藏)Turbo C 2.0、Borland C++库函数及用例
  5. 13 | 线性排序:如何根据年龄给100万用户数据排序?
  6. 手把手教你如何罗列提纲,避开这3个坑,提升写作效率50%
  7. 使用jfreechart在jsp页面柱状图统计
  8. 图像语义分割(4)-SegNet:深度全卷积编解码结构
  9. Linux终端(一)
  10. 线程上下文类加载器(Thread Context ClassLoader)
  11. PilotEdit 破解版下载|PilotEdit(文本编辑器) 中文破解版 v11.8下载(含注册机)
  12. 2016matlab打开toolbox,MATLAB2016添加工具箱toolbox方法,有截图
  13. 小游戏《堆木头》开发
  14. Photoshop透明度网格颜色设置方法
  15. springboot毕设项目水族馆观光网站e8iy4(java+VUE+Mybatis+Maven+Mysql)
  16. 北大青鸟资源管理系统
  17. AI:人工智能领域算法思维导图集合之有监督学习/无监督学习/强化学习类型的具体算法简介(预测函数/优化目标/求解算法)、分类/回归/聚类/降维算法模型选择思路、11类机器学习算法详细分类之详细攻略
  18. 程序员该如何应对大龄危机
  19. 杂谈:新浪微博客户端的不足
  20. 芯片失效分析,你可以怎么办?

热门文章

  1. MATLAB人脸识别系统
  2. 3dmax2020软件安装教程
  3. 关于各式竞赛书籍的点评
  4. 51单片机4位抢答器_倒计时可调仿真设计
  5. iPhone硬件拆机解锁方法 十步!
  6. Weblogic部署项目三种方式
  7. Android widget之CompoundButton
  8. JUnit执行单元测试用例成功,mvn test却失败的问题和解决方法
  9. 荷兰国旗问题与快速排序
  10. ukey网络连接异常_连接UKEY设备失败如何解?电子支付OCX – 手机爱问