selenium+python自动化测试之环境搭建


Posted in Python onJanuary 23, 2019

最近由于公司有一个向谷歌网站上传文件的需求,需要进行web的自动化测试,选择了selenium这个自动化测试框架,以前没有接触过这门技术,所以研究了一下,使用python来实现自动化脚本,从环境搭建到实现脚本运行。

selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。支持自动录制动作和自动生成 .Net、Java、Python等不同语言的测试脚本。

环境搭建步骤:

1、首先要下载Python,下载地址:https://www.python.org/downloads/,可以选择Python2.7或者Python3.x版本,我这里选择的是Python3.6的版本。下载的是一个exe安装文件,下载完直接安装即可,我的安装目录是C:\Python36,安装好以后将Python安装目录配置到环境变量中,然后在cmd中运行python命令,如果出现以下界面就证明安装成功了

selenium+python自动化测试之环境搭建

2、下载selenium,可以选择使用Python的pip命令和下载安装包的方式

使用pip命令安装,要保证安装的Python中已经安装了pip工具,到Python目录下的Scripts目录中查看是否存在pip.exe文件,如果没有的话,首先要下载pip安装,下载路径 https://pypi.python.org/pypi/pip/,下载后是一个压缩包,将文件解压到C:\Python36中,进入到pip目录,运行python setup.py install命令完成pip安装

使用pip安装selenium,在cmd中运行pip install selenium,安装完成后会出现如下提示,selenium就安装成功了

selenium+python自动化测试之环境搭建

也可以选择下载selenium安装包,下载路径 https://pypi.python.org/pypi/selenium,将压缩包解压到C:\Python36下,进入selenium目录,运行python setup.py install,安装完成后如下图所示

selenium+python自动化测试之环境搭建

这样,运行自动化的环境就已经算搭建完成了,可以来编写自动化脚本了,可以选择使用Java或Python语言来实现自动化测试脚本的编写,本博客采用python来编写脚本

新建文件selenium_test.py,右键选择使用Edit with IDLE,在python安装完成后,都会自带一个IDLE的编辑器,可以直接在IDLE编辑器中编写测试脚本,输入以下内容

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
print(driver.title)
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(3)
driver.close()

webdriver是一个Web应用程序测试自动化工具,用来验证程序是否如预期的那样执行。大致解释一下上述脚本中的测试代码

webdriver.Chrome():创建一个Chrome浏览器的webdriver实例

driver.get(“http://www.baidu.com“):打开”http://www.baidu.com“页面

driver.find_element_by_id(“kw”).send_keys(“selenium”):找到id为“kw”的元素,在这个页面上为百度首页的搜索框,在其中输入“selenium”

driver.find_element_by_id(“su”).click():找到id为“su”的元素并点击,在这个页面上为百度首页的“百度一下”按钮

driver.close():退出浏览器

运行测试脚本,在命令行中运行python 脚本路径或者直接F5运行脚本。运行后没有启动浏览器,报错信息:

Traceback (most recent call last):
 File "C:\Python36-32\selenium_test.py", line 4, in <module>
  driver = webdriver.Chrome()
 File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__
  self.service.start()
 File "C:\Python27\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
  os.path.basename(self.path), self.start_error_message)
WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

这里用的是Chrome浏览器,需要下载Chrome驱动,这里提供一个ChromeDriver的下载地址:http://npm.taobao.org/mirrors/chromedriver,是官网的镜像下载地址,下载后将ChromeDriver.exe放到Chrome浏览器的目录下:C:\Google\Chrome\Application,并将目录配置到环境变量中,这样就可以找到驱动了

再次运行脚本,就可以运行了,会自动运行浏览器,并打开百度首页,搜索selenium关键字,然后关闭浏览器

也可以使用其他浏览器来运行测试脚本,只要修改脚本的第一句代码就可以了

driver = webdriver.Firefox() //使用Firefox浏览器
//driver = webdriver.Ie() //使用IE浏览器

在使用selenium3运行Firefox浏览器时,可能会报下面的错误:

Traceback (most recent call last):
 File "C:\Python36-32\selenium_test.py", line 4, in <module>
  driver = webdriver.Firefox()
 File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 145, in __init__
  self.service.start()
 File "C:\Python27\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
  os.path.basename(self.path), self.start_error_message)
WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

这是因为在Firefox高版本中需要使用 geckodriver 来驱动,不再使用Selenium自带的Firefox webdriver。

geckodriver下载地址:https://github.com/mozilla/geckodriver/releases,下载后将geckodriver.exe放到Firefox的安装目录下,并将目录配置到环境变量中,就可以在Firefox中运行脚本

在IE浏览器中运行和Chrome浏览器是一样的,也需要下载IE驱动,然后将驱动所在的路径配置到环境变量中

这样,使用selenium+python运行web自动化测试的环境就已经全部搭建完成了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现多线程采集的2个代码例子
Jul 07 Python
python的socket编程入门
Jan 29 Python
如何使用Python实现自动化水军评论
Jun 26 Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
Python实现把类当做字典来访问
Dec 16 Python
基于pytorch的lstm参数使用详解
Jan 14 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
Python使用configparser读取ini配置文件
May 25 Python
在pycharm创建scrapy项目的实现步骤
Dec 01 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 Python
Python绘制地图神器folium的新人入门指南
May 23 Python
在python带权重的列表中随机取值的方法
Jan 23 #Python
Appium+Python自动化测试之运行App程序示例
Jan 23 #Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 #Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 #Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 #Python
python读取图片任意范围区域
Jan 23 #Python
Python基于plotly模块实现的画图操作示例
Jan 23 #Python
You might like
在win7中搭建Linux+PHP 开发环境
2014/10/08 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
Python简单实现安全开关文件的两种方式
2016/09/19 Python
python中reader的next用法
2018/07/24 Python
django celery redis使用具体实践
2019/04/08 Python
python语言元素知识点详解
2019/05/15 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
工厂厂长岗位职责
2013/11/08 职场文书
会议邀请书范文
2014/02/02 职场文书
十八届三中全会报告学习材料
2014/02/17 职场文书
专科生就业求职信
2014/06/22 职场文书
鉴史问廉观后感
2015/06/10 职场文书
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL