Selenium环境搭建
Selenium工具介绍
Selenium是系列基于Web的自动化测试工具。它提供了一系列测试函数,用于支持Web自动化测试。这些函数非常灵活,能够完成界面元素定位、窗口跳转、结果 比较。
Selenium名字的来源
Selenium是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。
Selenium 的中文名为“硒”,是一种化学元素的名字,它对汞(Mercury)有天然的解毒作用,实验表明汞暴露水平越高,硒对汞毒性的抵抗作用越明显,所以说硒是汞的克星。
由于Mercury 测试工具系列(QTP ,QC,LR,WR...),他们功能强大,但却价格不菲,大家对此又爱又恨!故thoughtworks特意把他们的Web开源测试工具命名为Selenium,以此帮助大家脱离汞毒。
主要功能
测试与浏览器的兼容性,测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
测试系统功能,创建回归测试检验软件功能和用户需求。
Selenium特点
- 开源、免费
- 多语言支持:Python、Java、C#、Ruby、PHP等
- 多浏览器支持:Firefox、Chrome、IE、Opera
- 多平台支撑:windows、linux、MAC
- 对web页面有良好的支撑
- 简单(API简单)、灵活(用开发语言驱动)
- 支持分布式执行测试用例
SeleniumIDE
该工具是一个用于构建脚本的初级工具,其实是FireFox的一个插件,拥有一个易于使用的界面。它拥有记录功能,能够记录用户执行的操作,并可以导出为可重复使用的脚本。
如果没有编程经验,可以通过Selenium IDE来快速熟悉Selenium的命令。
Selenium IDE安装
- 安装火狐浏览器
官方网址:http://www.firefox.com.cn/download/#more
一般下载延长版,这个版本selenium基本都能用,最新版本的火狐,selenium会报错。进入官网,拉到最底部就可以下载。 - 安装selenium ide
- 方式一:selenium官网地址:http://www.seleniumhq.org/download/ 下载seleniumIDE插件然后安装;
- 方式二:打开火狐浏览器,通过菜单进入附加组件 – 扩展 – 搜索框输入 selenium ,找到对应版本安装即可
- 简单使用(操作演示)
Selenium Remote Control
是Selenium中最主要的第一代测试工具,它是由javascript实现的,它支持很多浏览器,可以使用C#,Java等语言编写测试案例,易于维护,同时提供了很好的扩展性。每一个浏览器对于执行javascript都有很严格的安全限制,以防止用户被恶意脚本攻击。这也导致了selenium在某些场景下的测试工作变得很困难,比如IE下面的upload操作就不许执行往输入框中填写文件的路径。
WebDriver
是最新版的selenium工具,提供了许多功能,包括一套组织性更好、面向对象的API,并克服了许多在之前selenium1版本中测试的局限性。Selenium 2.0主要的特性就是与WebDriver API的集成。WebDriver旨在提供一个更简单。更简洁的编程接口以及解决一些Selenium-RC API的限制。Selenium-Webdriver更好的支持页面本身不重新加载而页面的元素改变的动态网页。WebDriver的目标是提供一个良好设计的面向对象的API,提供了对于现代先进web应用程序测试问题的改进支持。SeleniumWebdriver支持很多语言,如:C#,Java,Python, Ruby等
Selenium Gird
selenium grid可以同时在不同机器上测试不同浏览器,包含一个hub和至少一个node。node会发送配置信息到hub,hub记录并跟踪每一个node的配置信息,同时hub会接受到即将被执行的测试用例及其相关信息,并通过这些信息自动选择可用的且符合浏览器与平台搭配要求的node,node被选中后,测试用例所调用的selenium命令就会被发送到hub,hub再将这些命令发送到指定给该测试用例的node,之后由node执行测试。
利用Gird,可以很方便的同时在多台机器上和异构环境中并行运行多个测试用例。
其主要特点:
- 并行执行
- 通过一个主机统一控制用例在不同环境、不同浏览器下运行
- 灵活添加变动测试机
Python webdriver环境搭建
准备工具如下:
- python安装包
https://www.python.org/getit/ - PyCharm 安装包
http://www.jetbrains.com/pycharm/download/ - Selenium安装包
https://pypi.python.org/pypi/selenium
安装方式一:
安装python包,选择全部组件(pip、安装过程中配置环境变量)
然后执行
pip install -U selenium
联网安装Selenium
安装方式二:
安装python包,选择全部组件(pip、安装过程中配置环境变量)
解压selenium-3.13.0.tar.gz,然后用cmd进入解压目录,
使用命令
Python setup.py install
安装Selenium
备注:PyCharm是一款由JetBrains打造的一款Python IDE,类似于eclipse
当Selenium2.x提出了WebDriver的概念之后,它提供了完全另外的一种方式与浏览器交互。那就是利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)。
由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的geckoDriver,Chrome就有专门的ChromeDriver等等。
Webdriver驱动下载地址:
驱动名称 | 下载地址 |
---|---|
Chromedriver | http://npm.taobao.org/mirrors/chromedriver/ |
Geckodriver | https://github.com/mozilla/geckodriver/releases |
IEDriverServer | http://selenium-release.storage.googleapis.com/index.html |
MicrosoftWebDriver | https://developer.microsoft.com/en-us/microsoftedge/tools/webdriver/ |
webdriver配置(以chromedriver为例)
配置方式一:
1、把下载好的chromedriver.exe程序放置到python的安装路径下
2、在python中代码编写如下即可
driver = webdriver.Chrome() # Firefox、Ie、Edge等
配置方式二:
1、把下载好的chromedriver.exe程序放置到python项目中(其它路径也可)
2、在python中代码编写如下即可
chromePath = chromedriver.exe路径
os.environ[‘webdriver.chrome.driver’] = chromePath # gecko ie等
driver = webdriver.Chrome(executable_path=chromePath) # Firefox、Ie等
备注:其余浏览器配置更改可查看配置一和二的注释部分。
如下分别是实现打开谷歌和火狐浏览器,并打开百度网址的代码
(将chromedriver.exe&geckodriver.exe放到webdriver文件夹下)
from selenium import webdriver
#chrome
chromePath = os.getcwd()+'/../'+'webdriver/chromedriver.exe'
os.environ['webdriver.chrome.driver'] = chromePath
driver = webdriver.Chrome(executable_ path=chromePath)
driver.get('https://www.baidu.com')
#firefox
firefoxPath = os.getcwd()+'/../'+'webdriver/geckodriver.exe'
os.environ['webdriver.gecko.driver'] = firefoxPath
driver = webdriver.Firefox(executable_ path=firefoxPath)
driver.get ('https://www.baidu.com')