python自动化环境搭建

1 selenium环境搭建

1.1selenium

selenium是测试web应用程序的框架,selenium为没有测试脚本的人提供了(seleniumide)提供了录制/回放的工具,同时它也提供了特定域的语言来编写测试脚本,如c#,java,python等,selenium可以针对最现代的web浏览器运行测试,如firefox,chrome,ie,open等浏览器,selenium可以在windows,linux等平台上部署,selenium同时是开放源码的软件,是在apache2.0许可证下发布。

1.2selenium环境搭建

安装如下:

1、下载python,地址:https://www.python.org/downloads/(建议下载2.X版本的)

2、安装python的时候,记得在安装栏选择把python加到path的环境变量,这样python安装的时候,会自动安装setuptools和pip。

3、安装selenium

a) 在线安装:运行cmd,执行命令pip install -U selenium 安装

b)离线安装:到https://pypi.python.org/pypi/selenium地址下载selenium-2.46.0.tar.gz,下载文件成功后,解压文件,到文件的目录下,会看到setup.py文件,安装方式为到setup.py文件的目录下,执行命令为pythonsetup.py install安装。

4、python开发工具pycharm

到https://www.jetbrains.com/pycharm/download/地址下载pycharm,最好下载免费版本的。

5、监测selenium环境

运行cmd,输入python,会进入到dos下的python环境,输入:

from seleniumimport webdriver

无任何的错误提示信息,表示selenium安装成功。打开pycharm,创建新的python工程,再接着创建demo.py的文件,输入如下的代码:

#coding:utf-8

from seleniumimport webdriver

driver=webdriver.Firefox()

driver.maximize_window()

driver.implicitly_wait(30)

driver.get('http://www.baidu.com')

driver.find_element_by_id('kw').send_keys('seleniumhq')

driver.find_element_by_id('kw').click()

driver.quit()

输入完成后,右键,点击Run Demo,就会看到启动 firefox的浏览器进入到百度首页,在百度搜索输入框输入seleniumhq,然后点击搜索框,接着浏览器就会自动关闭。

如上的代码解释如下:

#coding:utf-8

防止乱码,在程序中统一添加注释,把编码统一成utf-8

from seleniumimport webdriver

导入selenium的webdriver的包,只有导入了webdriver,才可以更好的引用webdriver api进行自动化脚本的编写。

driver=webdriver.Firefox()

把需要控制的 webdriver的Firefox赋值给driver,只有获得对象后,才可以操作浏览器(firefox,chrome,ie等)。

driver.get('http://www.baidu.com')

获取浏览器对象后,调用get()向浏览器发送测试的地址。

driver.find_element_by_id('kw').send_keys('seleniumhq')

定位到页面元素后,通过id=kw定位到百度搜索输入框并且输入seleniumhq。

driver.quit()

退出并且关闭窗口。

1.3Firebug的使用

打开firefox的浏览器,点击工具下拉栏的“附加组件”,在附加组件搜索输入框输入firebug,搜索到后,点击右边栏的安装,安装完成后,重新启动firefox的浏览器,就会在firefox的右上角显示firebug的图标,见截图:。点击该图标,浏览器下端就会显示调试的窗口,见截图:

点击,鼠标移动到百度搜索输入框,就可以看到如下的截图,会显示搜索输入框的ID等元素,见截图:

依据截图,我们可以获取到百度搜索输入框的id为kw

在chrome浏览器中,按下F12键,就会显示出调试界面,见截图:

点击移动到百度搜索输入框,就可以定位到百度搜索输入框的页面元素,见截图:

1.4 IE浏览器的操作

selenium操作ie的浏览器是无法操作的,需要通过driver才可以操作,google官方解释为:InternetExplorerDriver 是一个独立的服务器,实现 WebDriver 的有线协议。此驱动程序已经过测试与 IE 6、 7、 8、 9 和 XP、 Vista 和 Windows7 的适当组合 10。驱动程序支持运行 32 位和 64 位版本的浏览器。如何确定哪些"bit-ness"在启动浏览器中使用的选择取决于哪个版本的 IEDriverServer.exe 发起。如果启动时的 32 位版本的 IEDriverServer.exe,32 位版本的 ie 浏览器将会启动。同样,如果推出的 64 位版本的 IEDriverServer.exe,将推出的 64 位版本的 IE。下载IEDriverServer文件后,把该文件放到C:\Python27的目录下,就可以直接操作IE的浏览器了。见如下的代码:

#coding:utf-8

from selenium import webdriver

fromselenium.webdriver.common.desired_capabilities import DesiredCapabilities

DesiredCapabilities.INTERNETEXPLORER['ignoreProtectedModeSettings']= True

driver=webdriver.Ie()

driver.maximize_window()

driver.implicitly_wait(30)

driver.get('http://www.baidu.com')

driver.find_element_by_id('kw').send_keys('seleniumhq')

driver.find_element_by_id('kw').click()

driver.quit()

1.5Chrome浏览器的操作

通过ChromeDriver就可以操作chrome, google官方的解释为:ChromeDriver 由三个独立部分组成。那里是浏览器本身 (chrome"),由selenum项目 ("the driver") 提供的语言绑定和可执行文件下载从chrome项目作为"chrome"和"the driver"之间的桥梁。此可执行文件被称为"chromedriver",但我们可以试着把它称作"服务器"在此页中以减少混乱。下载chromedriver后,把chromedriver文件放到C:\Python27的目录下,操作chrome的浏览器见如下的代码:

#coding:utf-8

from selenium import webdriver

driver=webdriver.Chrome()

driver.maximize_window()

driver.implicitly_wait(30)

driver.get('http://www.baidu.com')

driver.find_element_by_id('kw').send_keys('seleniumhq')

driver.find_element_by_id('kw').click()

driver.quit()

原文发布于微信公众号 - Python自动化测试(wuya-python)

原文发表时间:2015-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木子昭的博客

最简单靠谱的vsftpd安装指南(Ubuntu16.04)

vsftp (very secure FTP daemon)意为非常安全的ftp进程 特点:小巧|免费 | 安全,是Linux下最受推崇的ftp服务 -...

3408
来自专栏张伟博客

如何使用 Git 和 GitHub 来管理自己的代码

    点击右上角加号箭头,在弹出的菜单中选择 "New repository" 选项进行仓库配置。

1272
来自专栏同步博客

自定义搭建PHP开发环境

  3、将安装包准备好。http://pan.baidu.com/s/1mhxEPkc

1461
来自专栏重庆的技术分享区

MySQL在windows下的安装与配置

官网版本: https://dev.mysql.com/downloads/mysql/5.6.html#downloads

2084
来自专栏开发技术

将tomcat添加为linux系统服务

  在博客 --》virtualBox安装centos,并搭建tomcat中,讲到了centos下搭建tomcat环境,发现启动tomcat不是那么方便,要是忘...

1372
来自专栏nummy

sphinx入门指南【2】 toctree指令详解

reST本身并不支持同时与多个文档进行交互,或者说将一个文档保存到多个文件中。Sphinx提供了自定义指令toctree来支持实现这个功能。

1083
来自专栏玩转JavaEE

MongoDB副本集搭建

我们之前的案例都是在单个节点上实现的,在生产环境中这种做法是有风险的,如果服务宕机、崩溃或者硬盘坏了都会对公司业务造成损失,因此我们需要数据备份。在MongoD...

3676
来自专栏有趣的django

CRM客户关系管理系统(十) 第十章、kingadmin+admin+actions功能开发

2450
来自专栏IT综合技术分享

一、搭建SpringBoot2.0.0M4基础Web项目

SpringBootDemo1 - [~-IdeaProjects-SpringBootDemo1] - IntelliJ IDEA 2017.2.4_022....

1902
来自专栏源码之家

mysql数据库还原出错ERROR:Unknown command ‘\\’解决手记

1825

扫码关注云+社区