Selenium是用于测试 Web应用程序用户界面 (UI)的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用多个编程语言编写测试,并且 Selenium能够在一个或多个浏览器中执行这些测试。
发展历史
2004年,ThoughtWorks公司的JasonHuggins和他所在的团队采用Javascript编写一种测试工具来验证浏览器页面的行为。这个JavaScript类库就是Selenium core,同时也是seleniumRC、Selenium IDE的核心组件。
2006年,Google的工程师SimonStewart发起了WebDriver的项目;因为长期以来Google一直是Selenium的重度用户,但却被限制在有限的操作范围内。
2011年,Selenium和Webdriver合并, Selenium2.0诞生。
2016年7月,Selenium3.0悄悄发布第一个beta版。
版本间架构对比
Selenium 1.0 = Selenium IDE + Selenium Grid + SeleniumRC
Selenium 2.0 = Selenium 1.0 + WebDriver
Selenium 3.0 = Selenium 2.0 - Selenium RC
Selenium3 快速入门
Selenium 3 包括 Selenium IDE、Selenium Grid 和WebDriver 三大模块,Selenium Grid主要用于集群测试,这里不详细赘述,会在往后章节中详细讲解。下面我们来学习一下Selenium IDE和WebDriver两个核心模块。
Selenium IDE 使用
安装IDE
打开火狐浏览器,切换到附加组件管理,搜索Selenium。添加Selenium IDE即可。
在工具栏点击Se字样按钮,即可打开Selenium IDE,打开后有四个选项。分别为:
1、新建一个项目,并录制一个新测试脚本
2、打开一个已存在的项目
3、创建一个新的项目
4、关闭Selenium IDE
录制脚本
点击右侧REC即可开始录制脚本。一般录制完脚本后,需要在运行工具中重跑脚本测试,去掉一些无用或异常的测试命令。
选择用例集Search Suite右侧的三个点即可弹出选择列表。
导出脚本
导出可以选择Java、JavaScript、Python三种。
WebDriver的使用
1、安装JetBrains PyCharm,不赘述
2、安装Python3/Python2,不赘述
优化Pyhon脚本
PyCharm导入对应的测试文件后会有很多报错,这个时候需要下载相关
Pyhon包。如果是Python2,使用请以下命令:
py -2 -m pip install --trusted-host mirrors.aliyun.com -i http://mirrors.aliyun.com/pypi/simple/ selenium
Python3直接通过PyCharm安装即可。
然后,去掉无用的脚本。最后简化的脚本如下:
#encoding = utf-8
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.sogou.com/")
driver.find_element(By.ID, "query").send_keys("搜索测试")
driver.find_element(By.ID, "query").send_keys(Keys.ENTER)
time.sleep(3)
driver.quit()
说明一下上面操作,打开火狐浏览器,打开sogou搜索,获取到id为query的元素,发送“搜索测试”,再发送回车键,最后休眠3秒后退出。
当然这样是运行不起来的,我们还需要添加geckodriver和chromedriver。
添加Driver程序
1、下载浏览器对应版本Driver程序
geckodriver下载地址:https://github.com/mozilla/geckodriver/releases
chromedriver下载地址:https://npm.taobao.org/mirrors/chromedriver
2、修改测试代码
#encoding = utf-8
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox(executable_path="E:\\workspace\\auto_test\\geckodriver.exe")
# driver = webdriver.Chrome(executable_path="E:\\workspace\\auto_test\\chromedriver.exe")
driver.get("http://www.sogou.com/")
driver.find_element(By.ID, "query").send_keys("搜索测试")
driver.find_element(By.ID, "query").send_keys(Keys.ENTER)
time.sleep(3)
driver.quit()
END:运行一下程序就会自动打开浏览器进行相应的测试操作了。