前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python selenium系列(一)

python selenium系列(一)

作者头像
py3study
发布2020-01-08 18:21:01
8430
发布2020-01-08 18:21:01
举报
文章被收录于专栏:python3python3

一  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
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安装目录即可)

代码语言:javascript
复制
前面也讲了,selenium是支持多浏览器的,后续主要以chrome浏览器为例展开介绍,其他浏览器安装是类似的。
Chrome版本与浏览器驱动版本的关系如下:
444.jpg
444.jpg

五 测试

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

555.jpg
555.jpg

此时,如何浏览器被打开且自动访问了百度网址,那么安装就正常完成了。 注意: 使用browser.close()关闭浏览器可能遇到报错,该问题已经在selenium github提交issue(#3330),使用文中browser.quit()暂时绕过就可以了。 其他资源: 关于python selenium介绍及环境安装的视频讲解,请参看:http://i.youku.com/weiworld521 第 24 节。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档