篇5 python自动化测试应用-Selenium环境篇
篇5 python自动化测试应用-Selenium环境篇
--lamecho
1.1概要
大家好!我是lamecho(辣么丑),从本篇开始我将开始介绍python如何通过selenium来进行web页面自动化测试,我的一贯原则实战,有什么坑我会替大家埋上。
为什么是selenium?
记得最早接触web自动化测试,大家一定会想到QTP,在学着录制完订机票的网站后也算初步认识了什么是网页的自动化测试实现。基本的思路也就是模拟点击,然后对脚本回放。而selenium是什么呢,看看官网的定义:Selenium automates browsers。其实也是万变不离其宗,本身selenium有自己的ide,大家直接下载当作一个工具来学习使用类似QTP那样。但是今天我们要学习的是通过python调用selenium的框架API来实现网页的自动化实现,这样完成的脚本更具灵活性,开发符合测试项目的自动化测试脚本。
1.2 环境篇—环境准备
如同python在使用appium的实现一样,第一是本机测试环境的搭建。但是这里明显会比搭建appium简单很多,但是也会有一些地方大家需要注意。
1.Python环境
Python的安装这里就不多说了。具体方法可参考appium的文章
2.selenium库文件安装
安装同样有两种方式:
1.pip install selenium
2.selenium-3.0.2.tar.gz下载安装(推荐这样)官网链接下载地址:
https://pypi.python.org/pypi/selenium/。具体方法可参考appium的文章
前两步环境都完成后,在python脚本中加入
from selenium import webdriver
运行成功表示我们可以使用selenium了。
3.浏览器安装
什么浏览器?可能大家会有疑问,我的电脑上安装的有浏览器,ie,chrome,firefox都有,这一步应该省略了吧?大家不妨先运行一下下面的脚本看看。
# -*-encoding:utf-8 -*-
from selenium import webdriver
browser=webdriver.Firefox()
browser.maximize_window()
browser.get("https://www.baidu.com/")
els=browser.find_elements_by_tag_name('a')
for i in els:
if i.text==u'登录':
i.click()
break
browser.implicitly_wait(10)
browser.find_element_by_id('TANGRAM__PSP_8__userName').send_keys('test')
如果执行结果是火狐浏览器打开了baidu搜索并在登录框中输入了test表示你的环境是ok的。如果你的浏览器压根没调起来或者浏览器打开了但是没有打开baidu搜索,那么表明你的环境还是有问题,如果正常的打开了baidu搜索页面但是没有点击登录那就是我的脚本写的有问题了。说了这么多为什么把第三步讲的这么重要呢,因为selenium使用的环境搭建是非常简单的(前两步基本就算是搭建完了,网络上很多文章也是这样介绍的,我们既然是实战,就要还原真实情况),但是也是存在坑的,坑在哪里呢,坑就在第三步这里。简单说我们要想脚本能把浏览器打开并执行模拟动作,要保证两点:1.对应浏览器的driver;2.浏览器的版本要对。比如说我们的Firefox火狐浏览器,它的driver是geckodriver.exe这个文件,Chrome谷歌浏览的对应的chromedriver.exe这个文件。第二个要注意的是浏览器的版本,不负责任的说你要用最新的火狐版本或是谷歌肯定是跑不起来的(所以这里要提醒大家,环境装好后,在后期如果有浏览器提醒你更新版本,千万不要更新!!!!)。
我拿chrome浏览器举例:
chromedriver.exe下载地址:
http://npm.taobao.org/mirrors/chromedriver/
大家可以看到chromedriver.exe的版本最新的目前是2.28了,而浏览器的版本我们要用哪个呢,再往下看
chrome版本对应关系:
v2.24 v52-54
v2.23 v51-53
v2.22 v49-52
v2.21 v46-50
v2.20 v43-48
v2.19 v43-47
v2.18 v43-46
v2.17 v42-43
v2.13 v42-45
v2.15 v40-43
v2.14 v39-42
v2.13 v38-41
v2.12 v36-40
v2.11 v36-40
上面是chromedriver版本与Chrome版本的对应关系,我本机的环境是Chrome54,chromedriver的版本我用的是Driver info: chromedriver=2.24.417431。好了我们准备好浏览器版本及对应的driver文件,最后把chromedriver放到我们谷歌浏览器的根目录下,我的路径是C:\Program Files (x86)\Google\Chrome\Application。
这样通过这三步我们才算把环境准备好,大家再试试下方的脚本,看看能不能顺利的将chrome浏览器打开。
# -*-encoding:utf-8 -*-
from selenium import webdriver
chromedriver="C:\ProgramFiles(x86)\Google\Chrome\Application\chromedriver.exe"
browser=webdriver.Chrome(chromedriver)
browser.maximize_window()
browser.get("https://www.baidu.com/")
1.3 环境篇—结束
至此,我们的selenium测试环境就安装完了。下一篇,将开始介绍web页面的元素查找,同样会以实际的一个网站操作作为例子。
原创文章,转载请注明出处。新浪微博搜索 “lamecho好棒” 欢迎大家来撩。
微博:https://weibo.com/u/6017986584
博客:http://blog.sina.com.cn/u/6017986584
篇5 python自动化测试应用-Selenium环境篇的更多相关文章
- python自动化测试应用-第6篇(WEB测试)--Selenium元素篇
篇6 python自动化测试应用-Selenium基础篇 --lamecho 1.1概要 大家好!我是lamecho(辣么丑),上一篇我们搭建好p ...
- python自动化测试应用-第7篇(WEB测试)--Selenium进阶篇
篇7 python自动化测试应用-Selenium进阶篇 --lamecho 1.1概要 大家好!我是lamecho(辣么丑),本篇文章将是我们介 ...
- Python自动化测试面试题-接口篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-经验篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-Linux篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-MySQL篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-Redis篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-编程篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python自动化测试面试题-性能篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
随机推荐
- 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复
3390: [Usaco2004 Dec]Bad Cowtractors牛的报复 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 69 Solved: ...
- Python自动化开发(三):循环次数控制、常用数据类型、字符串格式化、列表常用操作、列表的后续操作
计数器的作用可以在死循环中,符合条件的情况下做自动退出中断 #!/usr/bin/env python # _*_ coding: utf-8 _*_ # @Time : 2017/3/14 11:2 ...
- Redis的发布订阅及.NET客户端实现
序言 发布订阅在设计模式中也可以说是观察者模式,针对这个模式是处理对象间一对多的依赖关系的,当一个对象发生变化,其它依赖他的对象都要得到通知并更新. 然而它也有自己的缺点,就是当主题发生一系列的变化时 ...
- NDK 开发实例二(添加 Eigen库)
上一篇,我已经阐述了如何创建一个简单的NDK实例: NDK 开发实例一(Android.mk环境配置下) 在上一篇的基础上,我们来添加Eigen库,然后做一个简单实例. Eigen是一个高层次的C + ...
- mac下常用软件整理
1.非常好用的压缩管理软件(免费版):RAR Extrator Free 解压的中文不会产生乱码: 2.记笔记用的:有道笔记.Evernote 3.SVN管理软件:ConerStone 4.非常给力 ...
- 关于统一资源标志符URL的理解
URL由三部分构成 A:B:C A:URL使用的领域 B:在此领域的类型名称 C:标识资源的具体位置 C可以是一个绝对路径,也可以是端口号加上资源名称,总之是可以唯一标示资源的标识 例: 在网址中 S ...
- 关于php的flush在本机正常在服务器不灵的问题
这个问题网上很多,我就不重复那些了. 我的是关于进度条的应用.我最后遇到的问题是,在本机swampserver环境下的输出缓存很快,但是到了服务器上就是一段一段的了.我的服务器是Web服务器是IIS. ...
- angular element()
使用angular.element()获取一个dom的方法. 1.可以使用jquery的选择器 2.可以使用javascript的原生的的查找元素的方法 下面是angular.element()提供的 ...
- download 下载文件 IE兼容性处理
根据CANIUSE(http://caniuse.com/#search=download)download兼容性如下图所示: 如上图所示,IE浏览器是不支持的. 1.测试代码: <!docty ...
- Python全栈开发第13天
#多用户登录 import getpass #引用getpass import os #引用os import configparser #引用配置文件操作的库 count = 0 count_oth ...