篇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自动化测试面试 ...
随机推荐
- 字符集&各种编码&编码解码
要理解乱码问题,首先需要理解几个概念:字符集.编码.编码规则.乱码 1. 字符集: 字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.字符集(Charact ...
- [LeetCode] Trapping Rain Water II 题解
题意 题目 思路 我一开始想的时候只考虑到一个结点周围的边界的情况,并没有考虑到边界的高度其实影响到所有的结点盛水的高度. 我们可以发现,中间是否能够盛水取决于边界是否足够高于里面的高度,所以这必然是 ...
- VMware Ubuntu16.04虚拟机安装MATLAB R2016b
因为这学期上的模式识别课程需要在Linux环境下使用Matlab,所以就在Windows10主机上的Vmware Workstation上的Ubuntu虚拟机上安装了最新版本的MATLAB. 环境: ...
- 关于window service2008系统iis部署访问证书,内部错误
近期因为在做微信支付系列,做到退款的时候需要通过把数据流通过证书post过去的时候,win7.win8.xp部署在iis都没问题.但是部署到服务器 2008的时候就出现了内部错误. 折腾许久,总算找到 ...
- 解决mac os下mcss命令报错:env: node\r: No such file or directory
标题无“转载”即原创文章,版权所有.转载请注明来源:http://besteam.im/blogs/article/31/. 我一直对字符界面有抵触感,即使会用vim,我的linux脚本(python ...
- Chrome 开发工具 Workspace 使用
前端开发中我们经常要在浏览器中做一些细节调整,比如对 CSS 的微调,最快的方式当然是直接在 Chrome 的开发者工具中调整,但问题在于在控制台中调试好的数值我们还需要再在 CSS 源码中再写一次, ...
- 初学canvas,遇到width和height显示问题和用excanvas.js兼容IE问题
/*-----------------------ITEYE 祈祷幸福博客原创,转载请注明.-------------------*/ 第一次认真写技术博客文~~~若有不严谨的地方,望指正. 今天是第 ...
- Windows:将cmd命令行添加到右键中方法
win10中将命令行cmd添加到右键的方法 Windows cmd 右键 win10 命令行 最近在学python,所以会用到很多库文件,但是有的库文件需要下载whl文件再通过cmd进行安装,所以每次 ...
- [Oracle]同义词(synonym)
(一)同义词的概念 同义词是数据库中表.视图.索引或其他模式对象的别名,与视图相似,同义词不占用实际的存储空间,在数据字典中只存同义词的定义. 在开发数据库时,应尽量避免直接引用表.视图或其他数据库对 ...
- 用Caffe生成对抗样本
同步自我的知乎专栏:https://zhuanlan.zhihu.com/p/26122612 上篇文章 瞎谈CNN:通过优化求解输入图像 - 知乎专栏 中提到过对抗样本,这篇算是针对对抗样本的一个小 ...