Selenium 简介
Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现操作人员人为的错误,也比较费时间。因此,将这些任务自动化,就可以消除人为因素。Selenium 帮助我们自动化验收测试,通过构建更严格的测试,从而软件更为可靠也更易于维护。
Selenium 支持 web 浏览器的自动化,它提供一套测试函数,用于支持 Web 自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较。支持多种浏览器、多种编程语言(Java、C#、Python、Ruby、PHP 等)、支持多种操作系统(Windows、Linux、IOS、Android 等)、开源免费。它主要由三个工具组成:WebDriver,IDE,Grid。
Selenium 架构
在客户端(client)完成 Selenium 脚本编写,将脚本传送给 Selenium 服务器,Selenium 服务器使用浏览器驱动(driver)与浏览器(browser)进行交互。
Selenium 核心组件
-
WebDriver 使用浏览器提供的 api 来控制浏览器,就像用户在操作浏览器,不具有侵入性。
-
IDE 是 Chrome 和 Firefox 扩展插件,可以录制用户在浏览器中的操作。
-
Grid 用于 Selenium 分布式,你可以在多个浏览器和操作系统运行测试用例。
Selenium安装准备
(1)第一种方式
分别介绍Python版和Java版的Selenium安装
Python版本的安装
用Python自带的pip工具安装Selenium,安装命令如下
pip install selenium
Java版本的安装
命令如下
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.14.0</version>
<dependency>
(2)第二种方式
分别介绍Python版和Java版的Selenium安装
Python版本的安装
Selenium是Python的第三方库,用PyCharm安装Selemnium的方式如下。
打开PyCharm,在PyCharm菜单栏上一次选择File ->Settings项,进入配置界面,如图。
上图所示的窗口中搜索Selenium,选择搜索出来的Selenium,点击 “InstallPackage ”按钮即可安装Selenium,见下图
Selenium支持多种浏览器,但需要下载对应的浏览器版本的驱动,并将下载的浏览器驱动位置设置到环境变量。
Java版本的安装
当时用Maven、Gradle等构建工具创建项目时,需要把Selenium的依赖添加到pom.xml中,这样系统启动时就会自动完成对Selenium的依赖加载,集体代码如下:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupid>
<artifactId>selenium-chrome-driver</artifactId>
<version>4.0.0</version>
</dependency>
实战演练
分别用Python和Java编程代码实现自动化地创建一个Chrome进程
Python演示代码
#导入 Selenium 包
from selenium import webDriver
# 创建一个ChromDriver 的实例,Chrome()会从环境变量中寻找浏览器驱动
driver = webdriver.Chrome()
# 打开IE浏览器
# driver = webdriver.Ie()
# 打开Firefox 浏览器
#driver = webdriver.Firefox()
Java演示代码
//导入Selenium 包
import org.openqa.selenium.webDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AiceTest(
public static void main (String[] args) throws InterruptedException {
//创建一个 ChromeDriver 的实例
webDriver driver = new ChromeDrive();
}
)