python selenium系列(一):框架介绍及安装

一  selenium是什么?

引用百度百科的介绍selenium的一段话:

“Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本”

令人吃惊的是,最后一句支持的语言里竟然没有提到Python,哈哈哈。

总之,selenium是用于web自动化测试的工具集,通过驱动浏览器代替人工完成兼容性测试或功能回归测试,支持多浏览器及多语言开发。

二  selenium和webdriver啥关系?

WebDriver 和 Selenium 原本是实现web自动化方面的两个独立项目。从Selenium 2 将两者合并,两者关系可以用Selenium 1.0 + WebDriver = Selenium 2.0表示。目前在测试领域,通常所说的selenium实际就是webdriver,而Selenium 1通常指的是Selenium RC。

与1.0相比,webdriver的API被设计的更加简洁、简单,驱动浏览器更加高效,同时解决了1.0中比较难处理的一些应用场景,如文件上传、下载,弹出框处理等。

三  WebDriver的工作原理

讲了selenium和webdriver的关系后,我们学习selenium,实际主要是学习webdriver的api使用方法。但是,在此之前,有必要先了解一下webdriver的工作原理。从网上找了一张图,介绍原理,如下:

WebDriver的工作原理,简述如下:

1.       webdriver是按照client - server的经典设计模式设计的;

2.       server端就是remote server,脚本启动的浏览器,它的职责就是等待client发送请求并做出相应;

3.       client端就是我们的测试代码,操作命令以http请求的方式发送给被server端,server接受请求,执行相应操作,并在response中返回执行状态、返回值等信息;

四 selenium环境安装

前面介绍了那么多,终于到本文的正题了,python开发环境如何安装selenium呢?

其实selenium安装很简单,三步走:

1. pip install selenium
2. 安装浏览器(chrome)
3. 安装对应浏览器驱动(chrome driver)(下载对应驱动放到python安装目录即可)
前面也讲了,selenium是支持多浏览器的,后续我主要以chrome浏览器为例展开介绍,其他浏览器安装使用都是类似的。
Chrome版本与浏览器驱动版本的关系如下:
五 测试
Selenium安装后,需要测试下是否可以正常工作,只需几条语句:

# 测试selenium安装情况, selenium可以打开chrome浏览器
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
print(browser.title)
browser.quit()
此时,如何浏览器被打开且自动访问了百度网址,那么安装就正常完成了。

关于python selenium介绍及环境安装的视频讲解,请参看:http://i.youku.com/weiworld521  第 24 节。

原文地址:http://blog.51cto.com/2681882/2130210

时间: 2024-10-07 06:39:09

python selenium系列(一):框架介绍及安装的相关文章

python selenium系列(三)常用操作类型及方法

一 前言 开展WEB UI自动化的核心思路,无非就是找到元素,然后操作元素这两个内容.在python selenium系列(二)元素定位方式一文中,已经介绍了如何找到元素这项技能,本文将介绍第二项内容,即如何操作已经找到的元素. 二 操作方法分类 总体来说,可以将操作大体分成四类,即浏览器操作.键盘操作.鼠标操作.js脚本. 1.  浏览器常用操作方法: 方法 描述 driver.maximize_window() 窗口最大化 driver.back() 页面返回 driver.forward(

hue框架介绍和安装部署

大家好,我是来自内蒙古的小哥,我现在在北京学习大数据,我想把学到的东西分享给大家,想和大家一起学习 hue框架介绍和安装部署 hue全称:HUE=Hadoop User Experience 他是cloudera公司提供的一个web框架,和其他大数据框架整合,提供可视化界面 hue的架构 1.hue UI:hue提供一个可视化的web界面 2.hue server:hue的服务器,对外提供一个web的访问 3.hue db:存储整合框架的信息 1.Hue的介绍 HUE=Hadoop User E

php Laravel 框架 介绍及安装

Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于表达力.官方宣传语: THE PHP FRAMEWORK FOR WEB ARTISANS. 为web艺术家创建的框架. PHP THAT DOESN'T HURT. CODE HAPPY & ENJOY THE FRESH AIR. 官网:http://laravel.com/ 中文 :http:

Python+Selenium ----unittest单元测试框架

unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做"PyUnit",是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习Python,所以只需要unittest是Python里的一个单元测试框架就可以了.       unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是test,也就是一个测试用例.要了解

1Python全栈之路系列Web框架介绍

Python全栈之路系列之Web框架介绍 所有的语言Web框架本质其实就是起一个socket服务端,监听一个端口,然后运行起来 Web框架包含两部分,一部分是socket,另外一部分是业务的逻辑处理,根据请求的不同做不同的处理 Python的Web框架分成了两类, 即包含socket也包含业务逻辑处理的(tornado) 不包含socket(框架本身通过第三方模块实现socket)只包含业务逻辑处理(django,Flask) WSGI的全称是Web Server Gateway Interfa

python selenium系列(四)元素等待

一 前言 在前面的selenium系列(二)元素定位方式和selenium系列(三)常用操作类型及方法两节中,已经介绍了web页面元素的识别定位.操作等技术,可能你会觉得掌握这两项技术就可以实施web自动化了,答案基本是这样的,毕竟元素定位和操作是核心技术.但是,在某些场景,脚本的运行并非预期那样,如,要操作的元素用常规方法无法识别.元素可以识别但在脚本运行时却未如期而至等.为了解决这些疑难杂症,接下来三节内容将会介绍处理这些问题的通用方法. 在本节,主要介绍元素等待的使用方法和场景,该方法是开

python selenium系列(二)元素定位方式

一 前言 元素定位,是操作元素的第一步,也是WebUI自动化的难点和核心. 二 元素定位方法 selenium提供了内置的方法完成对待操作元素的定位,主要分为8类,其中,每类又可细分为定位单个元素和定位多个元素,另外还提供了2个私有方法.详细如下: 定位单个元素 ·         find_element_by_id ·         find_element_by_name ·         find_element_by_xpath ·         find_element_by_

redis系列:redis介绍与安装

前言 这个redis系列的文章将会记录博主学习redis的过程.基本上现在的互联网公司都会用到redis,所以学习这门技术于你于我都是有帮助的. 博主在写这个系列是用的是目前最新版本4.0.10,虚拟机装的是4.0.10,为了方便window也安装了(版本3.2.100).后续命令会采用命令行,jedis和spring集成jedis这三种方式进行操作. 在这片博文的开始,可以先试着问几个问题,带着问题看博文,或许能更有收获. 什么是redis? 为什么要使用redis? 如何搭建redis环境?

python+selenium+unittest测试框架2-装饰器@classmethod

装饰器@classmethod 一.装饰器@classmethod 多个用例可能需要多次打开浏览器,装饰器@classmethod只打开一次浏览器.classmethod是python里的类方法,@是修饰符号. 1.setUpClass(): @classmethod def setUpClass(cls): 2.tearDownClass(): @classmethod def tearDownClass(cls): 示例: from selenium import webdriver fro