Selenium 测试理解

标签 selenium selenium-webdriver selenium-chromedriver intern

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

谁能解释一下selenium web driver和selenium server的意义吗?

我认为使用 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 服务器软件提供了两个重要的额外功能,如果您直接连接到 ChromeDriver,则这些功能是不存在的:

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

  2. Selenium 服务器支持与其他本身不支持 WebDriver API 的浏览器自动化系统之间的转换,例如 Mozilla 的 Marionette(使用/正在使用自定义 TCP 协议(protocol))和较旧的 IEDriverServer。

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

关于 Selenium 测试理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34638670/

相关文章:

C# Selenium,如何检查页面 <div> 上是否存在文本

python - Selenium 在光标事件部分输入文本

javascript - 如何在 selenium 测试中加速 SauceLabs javascript 查询?

java - 如何抛出新的 ElementNotFoundException?

selenium-webdriver - 使用 chromedriver 以编程方式在 chrome 中启用 "Preserve log"

google-chrome - 在 prefs 中设置 false 后仍然出现 Prompt_for_download

javascript - 为 JavaScript 客户端生成测试覆盖率

java - 本地连接问题 selenium web 驱动程序与 chrome 驱动程序

python - 在 Python Selenium chromedriver 中执行无限 JavaScript 循环时陷入困境

google-chrome - Windows 7 上 ChromeDriver 二进制文件和 Chrome 二进制文件的默认位置