自动化测试神器 selenium+phantomjs
Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建衰退测试检验软件功能和用户需求。支持自动录制动作和自动生成。Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。
PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等。
selenium直接可以用在dos界面pip安装,pip install selenium
phantomjs可以在http://phantomjs.org直接下载,解压就可以用了,
selenium+phantomjs的简单应用
#coding:gb2312
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path=r"D:\phantomjs\bin\phantomjs.exe")
driver.get("http://www.qq.com")
data = driver.title
driver.save_screenshot('qq.png')
print data
可以把腾讯首页保存下来
其中executable_path是phantomjs的解压路径
在过程中出现ImportError: cannot import name webdriver
后来百度了一下,知道了错误的原因主要是启动时候路劲不对,使用
import selenium
print selenium.__file__
查看路径只要把该文件下的selenium.py删除就可以
4. selenium自动访问浏览器
访问Firefox比较简单一点
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import sys
reload(sys)
sys.setdefaultencoding('gb2312')
设置编码格式
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
elem = driver.find_element_by_name("wd")
可以通过审查元素查看输入框的name="wd"
elem.send_keys("bzd111")
百度搜索键盘输入bzd111
elem.send_keys(Keys.RETURN)
访问Google稍微难一点,需要下载chromedriver.exe驱动
链接地址http://chromedriver.storage.googleapis.com/index.html?path=2.7和chrome.exe应用程序放在一起,就可以了
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import sys
reload(sys)
sys.setdefaultencoding('gb2312')
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
assert"百度" in driver.title
elem = driver.find_element_by_name("wd")
elem.send_keys("bzd111")
elem.send_keys(Keys.RETURN)
#driver.close()
#driver.quit()
过程和Firefox差不多,只是要多一个驱动
可以在上诉链接好好看看文档
( 写于2016年1月11日13点,http://blog.csdn.net/bzd_111)