Selenium 2 注入 JavaScript 来执行诸如click
.
Selenium 3 是如何工作的?
它是使用 Javascript 引擎的 Selenium RC :) 除了作为 JS 框架之外,它还引起了很多问题。例如,不同的浏览器对 Javascript 应用了安全限制,所以很多事情变得不可能并受到限制。
因此,随着 Selenium 2 (Selenium WebDriver) 的发布,它已被弃用,取而代之的是与浏览器原生兼容的驱动程序。
让我们详细说明一下。所以,硒 RC:
所以,Selenium RC 架构看起来像这样:
现在,Selenium 2弃用了所有这些 RC-JS-Injecting 魔法。相反,WebDriver 与以本机方式(使用浏览器原子)与浏览器通信的浏览器驱动程序进行通信(使用基于 http 请求的命令)。而且,Selenium 项目负责为每个浏览器提供驱动程序!记住这一点,这在下一段很重要;)
Selenium 2 架构如下(注意原生调用):
在Selenium 3中,所有主要的浏览器供应商都发布了自己的WebDriver 实现(Apple、Google、Microsoft 和 Mozilla)。而且由于浏览器供应商比任何人都更了解他们的浏览器,他们的 WebDriver 实现可以与浏览器紧密耦合,从而为您带来更好的测试体验。此外,Selenium RC 的所有踪迹都被删除。万岁!
所以 Selenium 3 使用驱动程序执行的本地调用(如 Selenium 2)来操作 WebElements,但是这一次,浏览器驱动程序是由浏览器供应商开发的。
直接取自selenium 文档页面
Selenium-WebDriver 使用每个浏览器对自动化的原生支持直接调用浏览器。这些直接调用的方式以及它们支持的功能取决于您使用的浏览器。本章稍后将提供有关每个“浏览器驱动程序”的信息。
对于熟悉 Selenium-RC 的人来说,这与您习惯的完全不同。Selenium-RC 对于每个支持的浏览器都以相同的方式工作。它在浏览器加载时将 javascript 函数“注入”到浏览器中,然后使用其 javascript 在浏览器中驱动 AUT。WebDriver 不使用这种技术。同样,它使用浏览器内置的自动化支持直接驱动浏览器。
根据 selenium webdriver在什么是浏览器的原生支持中解释了浏览器原生支持