篇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. mybatis 使用@Select 注解,因为字符编码不一致导致mybatis 报错

    使用 mybatis 的@Select 注解, @Select({ "<script>select " + ALL_COLUMNS + " from &quo ...

  2. struts2(四) ognl表达式、值栈、actionContext之间的关系

    今天来说说ognl表达式在struts2中的运用. --wh 一.什么是Ognl? 通过百度百科查询到的解释,其中详细的说明了OGNL的作用. 下面我们就对OGNL这5个作用进行讲解 1.存取对象的任 ...

  3. 老司机实战Windows Server Docker:3 单节点Windows Docker服务器简单运维(上)

    经过上两篇实战Windows Server Docker系列文章,大家对安装Windows Docker服务以及如何打包现有IIS应用为docker镜像已经有了基本认识.接下来我们来简单讲讲一些最基本 ...

  4. 基于原生js的返回顶部组件,兼容主流浏览器

    基于原生js的返回顶部插件,兼容IE8及以上.FF.chrome等主流浏览器. js文件中封装了getScrollTop()和changeScrollTop()函数分别用于获取滚动条滚动的高度和修改滚 ...

  5. iOS开发之UIDevice通知

    UIDevice类提供了一个单例对象,它代表着设备,通过它可以获得一些设备相关的信息,比如电池电量值(batteryLevel).电池状态(batteryState).设备的类型(model,比如iP ...

  6. 我的第一本docker书-阅读笔记

    花了三四天看完了我的第一本docker书,话说书写的还是挺简单易懂的.与传统的VM,VirtualBox,或者与那种内核虚拟的xen,kvm相比,docker作为一种容器的虚拟方式,以启动进程的方式来 ...

  7. 不使用回调函数的ajax请求实现(async和await简化回调函数嵌套)

    在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 $url = "http://www. ...

  8. java的特点跨平台原理以及JDK的安装

    终于开始了期待已久的java,了解java首先要了解下计算机语言的发展历史 机器语言--->汇编语言--->--->高级语言(面向过程的语言和面向对象的语言) 机器语言 每一个计算机 ...

  9. linux 下的 mkfifo、exec 命令使用

    MKFIFOSection: User Commands (1)Updated: 1998年11月Index Return to Main Contents  NAME(名称)mkfifo - 创建F ...

  10. 顺序线性表之大整数求和C++

    顺序线性表之大整数求和 大整数求和伪代码 1.初始化进位标志 flag=0: 2.求大整数 A 和 B 的长度: int aLength = a.GetLength(); int bLength = ...