# 深度介绍

> Selenium 是一系列工具和库的综合项目，这些工具和库支持 web 浏览器的自动化。

URL: https://deploy-preview-2977--selenium-dev.netlify.app/zh-cn/documentation/overview/details/

---

### Selenium 控制网页浏览器

_Selenium_ 有很多功能，
但其核心是 web 浏览器自动化的一个工具集，
它使用最好的技术来远程控制浏览器实例，
并模拟用户与浏览器的交互。

它允许用户模拟终端用户执行的常见活动；将文本输入到字段中，选择下拉值和复选框，并单击文档中的链接。
它还提供许多其他控件，比如鼠标移动、任意 JavaScript 执行等等。

虽然 Selenium 主要用于网站的前端测试，但其核心是浏览器用户代理库。
这些接口在应用程序中无处不在，它们鼓励与其他库进行组合，以满足您的目的。

### 一个接口来统治它们

该项目的指导原则之一是支持所有（主要）浏览器技术的通用接口。
Web 浏览器是非常复杂的，高度工程化的应用程序，
以完全不同的方式执行它们的操作，但是在执行这些操作时，它们通常看起来是一样的
即使文本以相同的字体呈现，图像也会显示在相同的位置，并且链接会将您带到相同的目的地。
下面发生的事情就像白天和黑夜一样不同。
Selenium “抽象”了这些差异，向编写代码的人隐藏了它们的细节和复杂性。
这允许您编写几行代码来执行一个复杂的工作流程，
但是这几行代码将在 Firefox、 Internet Explorer、 Chrome 和所有其他支持的浏览器上执行。

### 工具和支持

Selenium 的极简设计方法使其具有通用性，可以作为更大应用程序中的组件。
Selenium 保护伞下提供的周边基础设施为您提供了组合自己的
[浏览器 grid](https://deploy-preview-2977--selenium-dev.netlify.app/zh-cn/documentation/grid/index.md) 的工具，
因此测试就可以跨一系列机器在不同的浏览器和多个操作系统上运行。

想象一下，
服务器机房或数据中心的一组计算机同时启动浏览器，访问站点的链接、表单和表格 &mdash;
全天 24 小时测试应用程序。
通过为最常见的语言提供的简单编程接口，
这些测试将不知疲倦地并行运行，
当错误发生时向您报告。

通过为用户提供工具和文档，
不仅可以控制浏览器，
还可以方便地扩展和部署这些grid，
从而帮助您实现这一目标。

### 谁在使用 Selenium

世界上许多最重要的公司都在基于浏览器的测试中采用了 Selenium，
这常常取代了多年来涉及其他专有工具的工作。
随着它越来越受欢迎，
它的需求和挑战也成倍增加。

随着网络变得越来越复杂，新的技术被添加到网站上，
这个项目的任务就是尽可能地跟上它们。
作为一个开源项目，这种支持是通过许多志愿者的慷慨捐赠来提供的，
每个志愿者都有一份“日常工作”。

该项目的另一个任务是鼓励更多的志愿者参与到这项工作中来，
并建立一个强大的社区，以便项目能够继续跟上新兴的技术，
并继续成为功能测试自动化的主导平台。
