Selenium
1.什么是Selenium?
Selenium是一个用于Web应用程序测试的工具。
主流的自动化测试工具有:
- web自动化测试:selenium、robot framework
- App端自动化测试:Appium、Monkeyrunner、UIautomation
- PC客户端(win32)自动化测试:QTP
- 接口自动化测试:Jmeter、Postman、httpUnit、RESTClient
- 云测平台:Testin Testbird
- 性能测试:Jmeter、LoadRunner
2.Selenium的特点
1.开源软件:源代码开放可以根据需要来增加工具的某些功能
2. 跨平台:linux 、windows 、mac
3. 核心功能:就是可以在多个浏览器上进行自动化测试
4. 多语言:Java、Python、C#、JavaScript、Ruby等
5. 成熟稳定:目前已经被google , 百度, 腾讯等公司广泛使用
6. 功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能
Webdriver
1.什么是Webdriver?
Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具;
它提供了一套友好的API;
Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动;
说明:API:应用编程接口说明(WebDriver类库内封装非常多的方法,要使用这些方法,就需要友好的调用命名规则)
2.WebdriverAPI支持的浏览器
- Firefox (FirefoxDriver)【推荐】
- IE(InternetExplorerDriver)
- Opera(OperaDriver)
- Chrome (ChromeDriver)
- safari(SafariDriver)
- HtmlUnit (HtmlUnit Driver)
提示:
Firefox、Chrome:对元素定位和操作有良好的支持,同时对JavaScript支持也非常好。
IE:只能在windows平台运行,所有浏览器中运行速度最慢
HtmlUnit:无GUI(界面)运行,运行速度最快;
推荐原因:
- Selenium IDE
- FireBug
- 对WebDriver API支持良好
环境搭建
基于Python的环境搭建
- Windows系统
- Python 3.5(以上版本)
- 安装selenium包
- 浏览器
- 安装PyCharm
selenium安装、卸载、查看命令
安装:
pip install selenium==2.48.0
1). pip:通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。
2). install: 安装命令
3). selenium==2.48.0: 指定安装selenium2.48.0版本(如果不指定版本默认为最新版本)
卸载:pip uninstall selenium
查看:pip show selenium
火狐浏览器
- FireFox 48以上版本
Selenium 3.X +FireFox驱动——geckodriver.exe- Firefox 48 以下版本
Selenium2.X 内置驱动
Webdriver-元素定位
Webdriver元素定位方式
- id
- name
- class_name
- tag_name
- link_text
- partial_link_text
- Xpath
- Css
汇总:
1). id、name、class_name:为元素属性定位
2). tag_name:为元素标签名称
3). link_text、partial_link_text:为超链接定位(a标签)
4). Xpath:为元素路径定位
5). Css:为CSS选择器定位
案例
以id定位实现作为案例:
案例需求:
打开注册A.html页面,使用id定位,自动填写(账号A:admin、密码A:123456)
实现步骤:
- 导入selenium包 --> from selenium import webdriver
- 导入time包 --> from time import sleep
- 实例化火狐浏览器 --> driver=webdriver.Firefox()
- 打开注册A.html --> driver.get(url)
- 调用id定位方法 --> driver.find_element_by_id(“”)
- 使用send_keys()方法发送数据 --> .send_keys(“admin”)
- 暂停3秒 --> sleep(3)
- 关闭浏览器 --> quit()
代码实现:
from selenium import webdriver
from time import sleep
driver=webdriver.Firefox()
url='E:\\测试\\课件\\Web自动化\\Web自动化课件\\02img\\注册A.html'#需要自动化测试的网页的路径
driver.get(url)
#找到id为userA的账号输入框input
user=driver.find_element_by_id("userA")
#自动填写admin
user.send_keys("admin")
pwd=driver.find_element_by_id("passwordA")
pwd.send_keys("123456")
sleep(3)
driver.quit()
其他定位方式类似,略。
实验效果:
关于driver=webdriver.Firefox()无驱动报错问题
如果我们在上述执行过程中出现类似于提示
driver=webdriver.Firefox()
报错的问题,很有可能是我们没有配置好FireFox的浏览器驱动在我们的Python环境中。
解决方法是:
①下载geckodriver.exe
②将该驱动放置在当前我们的python环境
例如我的python项目是这样的:
那么我就把geckodriver.exe放在该目录下即可: