Selenium: Python版开发搭建(win10)

先声明一下,本文对于Selenium RC 远程 和 Grid多端并行都没有涉及,仅仅是写了Python下的初级Selenium搭建。另外以下操作都是windows10下进行,至于win2003,win7,win8,Ubuntu,Centos,RHEL什么的,都是大同小异,琢磨一下就搞定了。

自动化环境组成:Python & Selenium

  1. 解释器Python
  2. 编辑器PyCharm,依赖JDK环境
  3. 自动化工具Selenium 其中Webdriver集成编程用的接口库。
  4. 调试浏览器Firefox,选择开发者必备的浏览器, FirebugFirepath,定位辅助插件, Selenium IDE Firefox版录制插件

各个组成部分在自动化实施里的作用。

  1. Python: 用于解释并执行Python代码程序。 Selenium支持多种代码语言,比如Java、C#、Ruby…… 因为我暂时只想学好python,所以用它来使用Selenium对象,执行自动化脚本和框架调度。
  2. PyCharm: 专门针对Python的代码编辑器,它能够连接Python解释器,直接执行脚本和调试,以及语法高亮和对象变量快速定位跳转等等,还有项目多文件管理。 即使没有PyCharm,你也可以用Notepad++这类记事本来写代码,但辅助功能就没这么强大了。 当然还有其它编辑器,比如神器Eclipse,在观看斯坦福编程公开课时,用的就是eclipse来讲解。至于到底选什么编辑器是另一个永恒的话题,这里只能一句带过,你哪个用得熟就用哪个。 如果都不熟,随便选一个。
  3. Selenium: Selenium的Python模块代码核心是webdriver,通过它,你可以启动关闭浏览器,浏览网页,并对文字链接按钮等页面元素进行定位, 利用webdriver的对象方法操作所定位的元素,以实现自动化测试需要的操作步骤,比如点击,输入、获取结果等操作步骤,完成一次测试用例,通过数据处理,甚至框架调度,最终实现了自动化测试。
  4. 浏览器Webdriver驱动: 这一段说明完全是个人自学琢磨的理解,如果有不对的地方,希望能得到评论指正,同时也请浏览者进行鉴别。对于Webdriver驱动,如果你用Firefox浏览器是感觉不到的。 当你安装了Python和Selenium模块之后,直接写几行代码,就可以直接打开Firefox浏览器并访问测试网站。估计是火狐浏览器自带Webdriver驱动接口,能够被Webdriver模块直接调动。 但如果你想打开Chrome,就会发现报错,找不到chromedriver,后文会写如何用Webdriver打开Chrome。 所以Selenium 的 webdriver是通过各浏览器的Webdriver驱动,实现浏览器对象的操作。多写一句补充:你还可以通过Selenium RC来绕过同源策略,还可以通过Selenium Grid实施操作多个终端并行的自动化测试。
  5. Selenium IDE: 通过以上几个组成其实已经可以运行Webdriver自动化脚本了,那么IDE是干嘛用的呢,它是用来录制脚本和回放调试用的。给Firefox浏览器安装上Selenium IDE插件后,就可以在火狐浏览器打开Selenium IDE进行网站操作录制,录制后生成的代码可以导出为java或python等语言。 至于Chrome等浏览器怎么录制脚本,如同Firefox的Selenium IDE插件这样的功能,暂时不知,大概也有类似的插件吧。Chrome的插件商店也是牛的飞起,应当有成熟的解决方案。 在这里,Firebug或Firepath也是用于辅助你调试脚本,当然Firebug的作用远不止于此。

讲完概念后,开始实施部署Python+Selenium的自动化环境

  1. 安装JDK环境: 安装JDK,配置JAVAHOME/CLASSPATH/PATH,执行java和javac验证
  2. 安装Python解释器: 安装Python,配置PATH,执行python验证
  3. 安装PyCharm编辑器: 安装PyCharm,新建项目时指定一下解释器python版本
  4. 加强Python安装工具: Python安装插件模块的工具: 工具1.Setuptools,用exe直接执行安装或setup.py install 工具2.pip,执行setup.py install,再到PATH里添加Python/scripts 等一下安装Selenium的Python模块时,就要用到它们
  5. 安装Selenium模块工具: 方式1.用setuptools方式,先下载selenium,再执行它里头的python setup.py install 方式2.用pip方式,执行pip install selenium即可
  6. 安装火狐浏览器: 建议你下载多个版本安装包备用,比如25版,34版,42版,45版,历史版本下载地址https://ftp.mozilla.org/pub/firefox/releases/
  7. 安装Selenium IDE: 下载插件后,拖过去,丢入火狐浏览器。 传说中的Selenium IDE就这样装完了?是的。这东西安装特简单,操作起来也很简单,录制回放定位调试导出脚本就完事了。怎么看待自动化测试?它不仅仅是敲代码,自动化测试的本身,更多的是测试技术的应用。即使是框架调度的代码,对于一般的程序员来说也是轻松加愉快,只是对于测试人员来说会有点难度,但这难度也仅仅是基础级的代码难度。自动化难吗,它需要一点点代码基础,加上丰富的测试经验。 装完IDE之后,对于Firebug等插件,自己看着弄吧,其实装不装都行,遇到问题了,再去解决印象会更深刻一些。

搞了一堆玩意,也该跑一下了吧

打开PyCharm,新建python项目,新建一个文件,敲入以下代码
#!/usr/bin/env python
#coding=utf-8
from selenium import webdriver
import time
#打开狐火浏览器
driver = webdriver.Firefox()
#访问目标网址
driver.get("http://www.bing.com")
#等待4S
time.sleep(4)
#关闭浏览器
driver.quit()
Alt+Shift+F10 运行 然后你会看到Firefox浏览器被打开,并打开bing网页,然后又自动关闭了,说明搭建成功了。

如果火狐打开后是about:blank&utm_content=firstrun这个玩意,也不用紧张,那是浏览器版本导致的,34版本是没这个问题的,42和45版我试过有这个问题。具体怎么解决,自己尝试一下吧。

补充 chrome的Webdriver驱动

  1. 下载chrome的webdriver驱动文件,解压后是exe文件
  2. 拷贝到chrome的安装路径里
  3. 将chrome的路径添加到path变量里
  4. 敲一下以上代码,稍微改一下driver = webdriver.Chrome(),运行搞定
  5. 既然你使用chrome浏览器,那么这几步涉及的翻墙和普通的软件问题都是小儿科了。