近期在写爬虫软件时遇到的一些问题需要使用到selenium工具,在测试领域也同样需要学习该工具,所以大概记录下学习这款工具的使用以及一些问题及思考
selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点:
免费,也不用再为破解QTP而大伤脑筋
小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装1个多G 的程序。
这也是最重要的一点,不管你以前更熟悉C、 java、ruby、python、或都是C# ,你都可以通过selenium完成自动化测试,而QTP只支持VBS
支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome
支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。
1、搭建python环境
1) 安装python安装包
下载地址:https://www.python.org/downloads/release/python-2711/
安装步骤:略
2) 在环境变量中添加相应的变量名与变量值
变量名:Path
变量值:C:\Python27 (即Python的安装路径)
3)测试Python是否配置完成
在cmd中输入python -V 提示以下信息表示配置完成
C:\Users\Administrator>python -V
Python 2.7.11
2、安装selenium
2.1、通过pip 安装
pip install-U selenium
2.2、通过下载包安装
或者直接下载selenium包:
https://pypi.python.org/pypi/selenium
解压,cmd进入目录:
C:\selenium\selenium2.53.5> python setup.py install
恭喜~! 你前期工作已经做了,上面的步骤确实有些繁琐,但是并不难,不过我们已经完成成了,下面体验一下成果吧!
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.yahoo.com") # Load page
运行一下报错
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\1.py", line 5, in <module>
driver = webdriver.Chrome()
File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__
self.service.start()
File "C:\Python27\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start
os.path.basename(self.path), self.start_error_message)
WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
在Stack Overflow社区搜索了一下错误及解决方案:
3、下载chromedriver
chrome driver的下载地址在这里
https://code.google.com/p/chromedriver/downloads/list
1. 下载解压,你会得到一个chromedriver.exe文件(我点开,运行提示started no prot 9515 ,这是干嘛的?端口9515被占了?中间折腾了半天),后来才知道需要把这家伙放到chrome的安装目录下…\Google\Chrome\Application\ ,然后设置path环境变量,把chrome的安装目录(我的:C:\Program Files\Google\Chrome\Application)
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import os
chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver.exe"
os.environ['webdriver.chrom.driver'] = chromedriver
browser = webdriver.Chrome(chromedriver ) # Get local session of Chrome
browser.get("http://www.yahoo.com") # Load page
OK