基于Python和Selenium API可实现自动测试网站功能,这里介绍一下Selenium 的安装和基本使用,至于开发代码这里不做详细解说。
windows系统安装Python和Selenium环境:
1、安装python2.7 想必用过python的都知道pthon官网吧,这里不就多说了,去官网下载安装
2、安装setuptools工具,因为安装pip和selenium时需要setuptools模块,下载:http://pan.baidu.com/s/15R6w4
双击即可安装setuptools-0.6c11.win32-py2.7.exe安装至C:\Python27\Lib\site-packages(C:\Python27\是我这里python的安装目录)
3、安装pip
pip是软件包管理工具,呆会安装selenium时需要用到pip,下载:http://pan.baidu.com/s/1j6TeR
将文件解压到c:\Python下,在DOS下运行:cd C:\Python\pip-1.0.2\ 进入pip安装目录下执行命令:
\Python27\python.exe setup.py install 默认安装在:C:\python27\Scripts下。
4、安装selenium
在C:\python27\Scripts下运行:pip install -U selenium
运行完后屏幕出现:
Successfully installed selenium
Cleaning up...
表示成功安装。
5、安装浏览器插件
我用的是火狐浏览器,这里介绍一下火狐上webdriver插件的安装,在C:\Python27\Lib\site-packages\selenium\webdriver\firefox目录下找到webdriver.xpi文件,将这个文件拖到火狐浏览器中即可安装。
其他浏览器的插件安装(在网上找的资料)
安装chrome webdriver 解压chromedriver.exe到的安装目录下,如C:\Python27。添加C:\Users\Administrator\AppData\Local\Google\Chrome\Application\(chrome安装路径,这里是win7下的安装路径)到环境变量path
安装ie webdriver 复制IEDriverServer.exe到C:\Python27 设置IE浏览器,Internet选线安全,把各模式的“启动保护模式”设置成一样(或者全部启动,或者全部不启动)。
下面是一个简单的百度搜索功能测试用例:
百度输入对话框的源代码如下:
<form id="s_ps_form" onsubmit="javascript:F.call('ps/sug','pssubmit');" action="http://www.baidu.com/s" name="f">
<input id="kw" type="text" style="width:474px;" maxlength="100" name="wd" autocomplete="off"></input>
<input type="hidden" value="1" name="rsv_spt"></input>
<input type="hidden" value="1" name="issp"></input>
<input type="hidden" value="0" name="rsv_bp"></input>
<input type="hidden" value="utf-8" name="ie"></input>
<input type="hidden" value="baiduhome_pg" name="tn"></input>
<span class="btn_wr"> … </span>
<div id="sd_1382079119270" class="s-ps-sug" style="display: none;"></div>
</form>
python功能测试代码:
#coding:utf-8
#加载webdriver模块
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
#使用Firfox浏览器
driver = webdriver.Firefox()
#测试网址
driver.get("http://www.baidu.com/")
#寻找网址源代码的对话框ID
elem = driver.find_element_by_id("kw")
#输入要搜索的内容
elem.send_keys(u"桌面")
#寻找“百度一下”的ID
elem = driver.find_element_by_id("su")
#点击“百度一下”
elem.click()
#cookie= {"key":"value"}
#driver.add_cookie(cookie)
#输出cookie
all_cookie = driver.get_cookies()
print all_cookie
for cookie_name,cookie_value in all_cookie[0].items():
print "%s -> %s"%(cookie_name,cookie_value)
运行后的结果如下:
关于更多Selenium API 请参见http://docs.seleniumhq.org/