Selenium WebDriver and Selenium server



我需要你的帮助来连接有关硒的东西。在过去的几周里,我一直在阅读有关Selenium文档的内容。有selenium IDE(用于记录和重播测试的firefox扩展)Selenium RC - (Selenium 1.0)。这种方法现在似乎已经过时了,它使用代理HTTP服务器在多个浏览器上运行测试。Selenium Web Driver - (Selenium 2.0)。这是最新的一个,现在应该用于自动化测试。(每个浏览器实现Web Driver API)我还读到web驱动程序与本地浏览器交互,支持自动化,不需要HTTP服务器。

然后是这个Selenium服务器。(用java编写的selenium独立服务器)与selenium服务器的交互是通过JSON连接协议进行的。(其中每个语言绑定调用硒服务器通过HTTP传递JSON数据)

现在我有以下问题:

  1. 硒服务器是否与硒中使用的代理服务器相同RC吗?

  2. selenium RC是否使用JSON连接协议

  3. 哪里是硒服务器适合硒2.0,如果web驱动程序

  4. 假设我正在使用selenium 2.0, java客户机运行我的测试库,在chrome浏览器。当我调用WebDriver API时,它是如何与chrome驱动程序交互?它是否使用JSON连接协议?

…我有更多的问题,但需要以上问题的答案来清除我脑海中的硒云

1- Selenium Server 2.0兼容Selenium RC。版本从1.0升级到2.0主要是因为他们给服务器添加了WebDriver API。因此,Selenium Server 2.0包含了Selenium RC。

几个月前,他们从Selenium Server中删除了Selenium RC API,这是版本号再次增加的主要因素,这次是3.0。

注意:你仍然可以在Selenium 3中使用RC API(使用遗留模块,而不是与Selenium Server .jar一起出现),但是由于RC API是使用WebDriver而不是Selenium Core实现的,因此一些测试的行为可能会有所不同。

2-不,JSON连接协议是WebDriver协议,有点绑定到WebDriver接口或API。这里是W3C文档。JSON Wire Protocol可以被看作是在客户端/服务器通信的上下文中,WebDriver API绑定中定义的命令的表示方式(例如,转到特定的URL,单击一个元素,…)。

3- Selenium Server是一个"WebDriver服务器"。您的测试脚本可以使用JSON连线协议与它通信,并发送"WebDriver命令"。根据测试脚本所需的功能(例如,测试脚本想要使用的浏览器),Selenium服务器会以一种或另一种方式"转发/执行"命令。

如果你指定你想要HtmlUnit无头浏览器,那么Selenium Server将不会将命令转发给任何其他进程,而是使用与Selenium Server捆绑在一起的HtmlUnitDriver来执行它们。

如果你指定你想要Chrome浏览器,那么Selenium Server将"转发"命令到ChromeDriver(在Chrome的情况下,WebDriver驱动程序是一个完全独立的"WebDriver Server"进程)。

通过这种方式,Selenium Server可以在测试脚本之外集中处理多个浏览器的所有必要负担。你可以配置它来处理多个浏览器。

此外,您可以使Selenium Server表现得像一个网格,并且只与一个端点(集线器)通信,该端点将负责将测试分发到所有注册的节点。

4-是的,部分已经解释过了。如果您愿意,您可以直接从测试脚本连接到ChromeDriver。

最新更新