我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python selenium系列(一)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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的工作原理。从网上找了一张图,介绍原理,如下:

111.png

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版本与浏览器驱动版本的关系如下:

444.jpg


五 测试

Selenium安装后,需要测试下是否可以正常工作,只需几条语句:

555.jpg

此时,如何浏览器被打开且自动访问了百度网址,那么安装就正常完成了。

注意:
使用browser.close()关闭浏览器可能遇到报错,该问题已经在selenium github提交issue(#3330),使用文中browser.quit()暂时绕过就可以了。

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python selenium系列(一)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python selenium系列(一)

一  selenium是什么?引用百度百科的介绍selenium的一段话:“Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10
2023-01-31

python selenium系列(五)

一 前言提起断言,接触过软件测试相关工种的同学们,一定不会陌生。比如,功能测试/自动化测试判断用例是否通过,靠的就是检查测试结果与预期是否一致;稍微不同的是,功能测试的结果检查是由人工完成的,而自动化测试是通过预先把期望结果写入脚本,并与实
2023-01-31

python selenium系列(四)

一 前言在前面的selenium系列(二)元素定位方式和selenium系列(三)常用操作类型及方法两节中,已经介绍了web页面元素的识别定位、操作等技术,可能你会觉得掌握这两项技术就可以实施web自动化了,答案基本是这样的,毕竟元素定位和
2023-01-31

python selenium系列(11

一 前言Selenium系列文章已经基本涵盖了主要的知识点,至于PO模式,发现有篇文章写的挺好的,后续转载分享过来,哈哈。Python Web UI自动化技术就要告一段落了,接下来打算写Django Web开发相关的文章,希望有兴趣的同学可
2023-01-31

python selenium系列(二)

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

python selenium系列(三)

一 前言开展WEB UI自动化的核心思路,无非就是找到元素,然后操作元素这两个内容。在python selenium系列(二)元素定位方式一文中,已经介绍了如何找到元素这项技能,本文将介绍第二项内容,即如何操作已经找到的元素。 二 操作方法
2023-01-31

selenium+python(之一)

各位好,今天是我第一次写博客,工作了也有一段时间了,今天想分享一些学习到的内容,大家共同学习,共同进步,写的不好的地方,多多待见,比较功底有限。今天想写一些自动化相关的东西,也算是记录一下学习的历程吧。环境:python+seleniump
2023-01-31

python selenium redis队列提高效率

爬虫架构流程图(基于生产者消费模型)整个程序被解耦成两部分:(先进先出,后进先出)1 数据生产者 页面解析(获取url,title,状态码,图片地址,文本信息等等....) 使用(lpush或rpush,看需求而定)往reids队列中存数据
2023-01-30

Python之函数系列(一)

每个编程语言中(诸如:Java、C++、C)等都有函数的,Python也不例外函数的主要作用有哪些呢?1、将程序的功能进行模块化,功能模块清晰2、减少重复代码的工作量3、便于阅读及维护、调试等一、函数的结束及返回值# -*- coding:
2023-01-31

Python 系列(一)- 收藏集 -

Python 多线程简易入门 - 后端 - 掘金一直懒得写Python相关的文章,恰好有天需要简单的给童鞋们讲点课,仓促之余就诞生了此文. 今天本来准备全面的聊聊有关高性能并发这个话题来着,但是周末马上要来了啊.所以我就取了其中的一点来介绍
2023-01-31

python入门系列之一:Centos6

1)编译安装python2.7[root@mysql-master ~]# python -VPython 2.6.6查看python的版本信息(之前的yum是通过yum安装的)[root@mysql-master src]# wget h
2023-01-31

OpenCV-Python系列·第十一集

自定义卷积核,如3×3、5×5、7×7、9×9、11×11Tip:卷积核需归一化。# -*- coding: utf-8 -*-"""Created on Sat Aug 25 14:35:33 2018@author: Miracle""
2023-01-31

Python学习系列 (第一章):Pyt

一: Python 的简介:   python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。二:Pyth
2023-01-31

python爬虫系列Selenium定向爬取虎扑篮球图片详解

前言:作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队、CBA明星、花边新闻、球鞋美女等等,如果一张张右键另存为的话真是手都点疼了。作为程序员还是写个程序来进行吧!所以我通过Pytho
2022-06-04

python第三方库系列之一--json

认真生活每一天,认真敲好每一行代码,为了未来的小公主,好好学习,天天向上~一、先讲讲json的出现,就要先讲讲序列化    1. 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是
2023-01-31

Python 性能快速优化: 系列一

注: 本文的原文地址 quick-python-performance-optimization-part-iPython可能最容易扼杀你的想法,但不是最好的代码实现。尽管强烈反对过早优化,但在 Python 代码中一点点的优化都可能带来巨
2023-01-31

python系列(三)python列表详

博主QQ:819594300博客地址:http://zpf666.blog.51cto.com/有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持!本博文阅读目录:1)len函数//查看列表的个数2)序列[索引号] //查看索引号对应
2023-01-31

《PyCon2018》系列一:Pipen

前言俗话说,工欲善其事,必先利其器。我们写代码也是如此。在Python开发过程中,如何管理Python运行环境、package依赖关系是每个开发者都绕不过去的问题。在PyCon2018上,Kenneth Reitz介绍的Pipenv,就是用
2023-01-30

Python系列------httpli

第三方函数库下载地址: https://pypi.python.org/pypi/httplib2/2 、解压下载的压缩包“httplib2-0.9.1.zip”到某目录下3、配置python在dos下的运行环境(之前需要配置系统环境变量,
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录