Selenium测试理解

Selenium testing understanding

我一直在考虑为应用程序设置测试,但我正在努力正确理解 selenium。

谁能解释一下 selenium 网络驱动程序和 selenium 服务器的意义?

我认为使用 mocha 作为框架进行测试是正常的,然后使用 selenium webdriver 和服务器。

但最近,我读到了一些新框架,例如 intern.js,它们不需要 selenium 服务器,只需要 chromedriver。那么chromedriver只是提取出来的selenium webdriver的一部分吗?

无法理解所有这些如何适应。

所有 Selenium 2/WebDriver 服务器(ChromeDriver、MicrosoftWebDriver、GhostDriver 等)名义上使用相同的 WebDriver protocol。因此,当您的测试软件尝试连接到 WebDriver 服务器时,另一端的服务器是 Selenium、ChromeDriver、BrowserStack 或其他任何服务器都无关紧要,因为它们都是一样的标准化 WebDriver API.

Selenium 服务器软件提供了两个重要的额外功能,如果您直接连接到 Chrome驱动程序,则这些功能不存在:

  1. 而 ChromeDriver 仅允许您与 Chrome 交互,Selenium 服务器允许您与多个不同的浏览器交互,同时仍连接到单个 HTTP 端点。当您使用 Selenium 服务器时,它允许不同的浏览器自行注册,因此当您请求例如Firefox,Selenium 服务器将为您的请求找到一个可用的 Firefox 实例,然后代理该会话进出该浏览器的所有流量。

  2. Selenium 服务器支持翻译 to/from 其他不支持 WebDriver API 的浏览器自动化系统,例如 Mozilla 的 Marionette(used/uses 自定义 TCP 协议)和较旧的 IEDriverServer。

具体关于 ChromeDriver:从历史上看,每个浏览器的 Selenium 实现都是由 Selenium 团队编写的,但现在 WebDriver 是一个新兴标准,浏览器供应商开始负责编写自己的 WebDriver 实现而不是将这项工作留给 Selenium 团队。其中FirefoxDriver和IEDriverServer目前仍由Selenium团队维护,ChromeDriver由Chrome团队独立开发,未来各浏览器厂商有望提供自己的WebDriver服务。