我一直在考虑为应用程序设置测试,但我很难正确理解 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,则这些功能是不存在的:
ChromeDriver 仅允许您与 Chrome 交互,而 Selenium 服务器允许您与多个不同的浏览器交互,同时仍连接到单个 HTTP 端点。当您使用 Selenium 服务器时,它允许不同的浏览器向其自身注册,因此当您请求例如Firefox,Selenium 服务器将为您的请求找到可用的 Firefox 实例,然后代理该 session 进出该浏览器的所有流量。
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/