篇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环境篇的更多相关文章

  1. python自动化测试应用-第6篇(WEB测试)--Selenium元素篇

    篇6                            python自动化测试应用-Selenium基础篇 --lamecho 1.1概要 大家好!我是lamecho(辣么丑),上一篇我们搭建好p ...

  2. python自动化测试应用-第7篇(WEB测试)--Selenium进阶篇

    篇7                            python自动化测试应用-Selenium进阶篇 --lamecho 1.1概要 大家好!我是lamecho(辣么丑),本篇文章将是我们介 ...

  3. Python自动化测试面试题-接口篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  4. Python自动化测试面试题-经验篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  5. Python自动化测试面试题-Linux篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  6. Python自动化测试面试题-MySQL篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  7. Python自动化测试面试题-Redis篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  8. Python自动化测试面试题-编程篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  9. Python自动化测试面试题-性能篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

随机推荐

  1. C++ 容器对象vector和list 的使用

    在<<c++ primer>>第四版Exercise Section 9.3.4 的Exercise 9.20 是这样的一道题目:编写程序判断一个vector<int&g ...

  2. 【收集】sql查询统计,周,月,年

    昨天 select * from tb where datediff(day, 时间字段 ,getdate()) = 1 今天 select * from tb where datediff(day, ...

  3. linux 根分区扩展

    linux根分区扩容 今天网站上传图片出问题了,一开始还以为是程序问题,后来发现原来是服务器存储空间不够,明明有200G的磁盘空间,没理由这么快就用完,查了一下分区情况,原来有两块磁盘,根分区只挂载在 ...

  4. C++枚举类型详解

    原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5171110.html  一.枚举类型的定义 enum 类型名 {枚举值表}: 类型名是变量名,指定 ...

  5. HTML——超文本标记语言(表单及12个表单元素)

    表单 格式: <form action=" " method="get/post"  placehoder=" "></f ...

  6. java学习笔记 --- String类

    一.定义 就是由多个字符组成的一串数据.也可以看成是一个字符数组. 注意: 1.字符串是常量:它们的值在创建之后不能更改.为什么? 意思就是说字符串确定了,就会在常量池中生成这个字符串. 所以说它的值 ...

  7. KMP算法C语言实现。弄了好久才搞好。。。

    我的这个算法中数组的第一位没有像教材中那样用来存数组的大小,所以会有些许的不同.                                                             ...

  8. css颜色代码对照

    FFFFFF #DDDDDD #AAAAAA #888888 #666666 #444444 #000000 #FFB7DD #FF88C2 #FF44AA  #FF0088  #C10066  #A ...

  9. 使用Docker容器来源码编译etcd

    背景 etcd是CoreOS公司开发的分布式键值对存储库.在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储. 不幸的是,在github的release中,Core ...

  10. Jmeter-线程组

    1.Sampler 取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler , 如 HTTP Request Sam ...