这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

入门指南

Selenium 通过使用 WebDriver 支持市场上所有主流浏览器的自动化。 WebDriver 是一个 API 和协议,它定义了一个语言中立的接口,用于控制 web 浏览器的行为。 每个浏览器都有一个特定的 WebDriver 实现,称为驱动程序。 驱动程序是负责委派给浏览器的组件,并处理与 Selenium 和浏览器之间的通信。

这种分离是有意识地努力让浏览器供应商为其浏览器的实现负责的一部分。 Selenium 在可能的情况下使用这些第三方驱动程序, 但是在这些驱动程序不存在的情况下,它也提供了由项目自己维护的驱动程序。

Selenium 框架通过一个面向用户的界面将所有这些部分连接在一起, 该界面允许透明地使用不同的浏览器后端, 从而实现跨浏览器和跨平台自动化。

Selenium的设置与其他商业工具有很大不同. 在开始编写 Selenium 代码之前, 您必须安装所选语言的相关类库, 目标浏览器的驱动程序.

请点击以下链接,开始使用 Selenium WebDriver.

如果您希望从低代码/录制和播放工具开始,请查看 Selenium IDE

开始工作后,如果想扩展您的测试,请查看 Selenium Grid.

1 - 安装Selenium类库

首先,您需要为自动化项目安装 Selenium 绑定库。 库的安装过程取决于您选择使用的语言。

请求对应的程序语言

下一步

创建你的第一个Selenium脚本

2 - 编写第一个Selenium脚本

当你完成 Selenium安装 后, 便可以开始书写Selenium脚本了.

八个基本组成部分

Selenium所做的一切, 就是发送给浏览器命令, 用以执行某些操作或为信息发送请求. 您将使用Selenium执行的大部分操作, 都是以下基本命令的组合

点击 “View full example on ” 的链接以查看上下文中的代码.

1. 使用驱动实例开启会话

关于如何启动会话,请浏览我们的文档 驱动会话

2. 在浏览器上执行操作

在本例中, 我们 导航 到一个网页.

3. 请求 浏览器信息

您可以请求一系列关于浏览器的信息 , 包括窗口句柄、浏览器尺寸/位置、cookie、警报等.

4. 建立等待策略

将代码与浏览器的当前状态同步 是Selenium面临的最大挑战之一, 做好它是一个高级主题.

基本上, 您希望在尝试定位元素之前, 确保该元素位于页面上, 并且在尝试与该元素交互之前, 该元素处于可交互状态.

隐式等待很少是最好的解决方案, 但在这里最容易演示, 所以我们将使用它作为占位符.

阅读更多关于等待策略 的信息.

5. 发送命令 查找元素

大多数Selenium会话中的主要命令都与元素相关, 如果不先找到元素, 就无法与之交互.

6. 操作元素

对于一个元素, 只有少数几个操作可以执行, 但您将经常使用它们.

7. 获取元素信息

元素存储了很多被请求的信息.

8. 结束会话

这将结束驱动程序进程, 默认情况下, 该进程也会关闭浏览器. 无法向此驱动程序实例发送更多命令.

详见 Quitting Sessions.

运行 Selenium 文件

接下来的步骤

大多数 Selenium 用户执行许多会话, 需要组织它们以最大限度地减少重复并维持代码更易于维护. 请继续阅读,了解如何将此代码放入您用例的上下文中 使用 Selenium.

3 - 组织和执行Selenium代码

如果你不仅仅只是想执行一小撮的一次性脚本,你需要能组织并编排好你的代码。 本章会启发你如何真正地使用 Selenium 代码做高效的事情。

常见用法

大部分人使用 Selenium 执行针对 Web 应用的自动化测试,但是 Selenium 其实可以支持任何场景的浏览器自动化。

重复性任务

有时候你需要往网站记录日志或者下载一些东西,或者提交一个表单, 你可以在预设的时间创建一个 Selenium 脚本去执行一个服务。

网页爬虫

你是否期望从一个不提供 API 的网站收集数据?Selenium 可以满足你, 但是请确保你了解该网站的服务条例, 因为有些网站不允许你这样做,甚至有些网站会屏蔽 Selenium。

测试

使用 Selenium 做测试需要在 Selenium 执行操作后进行断言,所以一个好的断言类库是很有必要的。 至于组织测试用例结构的一些额外特性则需要Test Runner来完成。

IDEs

不管你要用 Selenium 来做什么,没有一个好的集成开发环境,你的工作肯定不会高效。以下是一些常见的 IDE 选择:

Test Runner

即使不使用 Selenium 做测试,如果你有高级用例,使用一个 test runner 去更好地组织你的代码是很有意义的。 学会使用 before/after hooks 和分组执行或者并行执行将会非常有用。

候选

有非常多不同的 test runner 可供选择。

这个教程中所有使用到 test runner 的代码示例都可以在我们的示例目录中找到(或者正在被迁移过去), 而且这些示例在每一次发版都会被执行,以确保代码是正确的和最新的。 下面是一份包含对应链接的 test runner 清单,其中第一项是被这个仓库和本页所有用例所使用的。

安装

安装 Selenium 类库一节中详细说明了需要哪些东西。 这里的代码只展示在我们的文档示例项目中用到的示例。

断言

Setting Up and Tearing Down

执行

示例

第一个脚本一节中,我们了解了 Selenium 脚本的每一个组件。 这里是使用 test runner 重新组织那个脚本的一个示例:

下一步

使用你目前所学到的知识构建你自己的 Selenium 代码吧!

想要了解更多的功能特性, 请继续阅读我们接下来的WebDriver 教程