我正在寻找关于如何在远程主机上设置 selenium 服务器以及如何正确使用它的清晰简洁的教程。一般来说,我对服务器的一些设置和配置仍然很陌生,而且 selenium 文档的措辞似乎旨在提高理解水平。我已经在我的本地机器上设置了一些测试用例,现在我想弄清楚如何远程设置它。
1 回答
服务器端:
如何设置服务器部分,即独立服务器+ webdriver(例如chromedriver)。
独立服务器有帮助:
java -jar <path_to>/selenium-server-standalone-<version>.jar -help
实际上有两件事:selenium-server (5+MB jar) 和 selenium-server-standalone (30+ MB jar)。 https://selenium-release.storage.googleapis.com/index.html?path=2.47/
据我了解 selenium-server-standalone 对于大多数任务来说已经足够了。有一个关于差异的话题:
客户端:
在您的代码中使用一些 WebDriver 接口实现之前。
比如说,你可以使用 ChromeDriver。 https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/chrome/ChromeDriver.html
现在需要使用RemoteWebDriver(WebDriver接口的实现): https ://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/remote/RemoteWebDriver.html
以下是如何使用具有各种浏览器功能的 RemoteWebDriver 的代码片段:http: //docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#remotewebdriver
例如,可能有这样的客户端代码:
ChromeOptions options = new ChromeOptions();
// set some options
DesiredCapabilities dc = DesiredCapabilities.chrome();
dc.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), dc);
driver.get("http://www.google.com");
...
有一个解释它是如何工作的:
RemoteWebDriver 是 WebDriver 接口的一个实现类,测试脚本开发人员可以使用它通过远程机器上的 RemoteWebDriver 服务器执行他们的测试脚本。
RemoteWebDriver 有两个部分:服务器和客户端
RemoteWebDriver 服务器是一个组件,它在端口上侦听来自 RemoteWebDriver 客户端的各种请求。一旦它收到请求,它就会将它们转发给以下任何一个:Firefox 驱动程序、IE 驱动程序或 Chrome 驱动程序,以被请求者为准。
用作 RemoteWebDriver 客户端的语言绑定客户端库。在本地执行测试时,客户端将测试脚本请求转换为 JSON 有效负载,并使用 JSON 有线协议将它们发送到 RemoteWebDriver 服务器。
当您在本地执行测试时,WebDriver 客户端库会直接与您的 Firefox 驱动程序、IE 驱动程序或 Chrome 驱动程序通信。现在,当您尝试远程执行测试时,WebDriver 客户端库与 RemoteWebDriver 服务器通信,服务器与 Firefox 驱动程序、IE 驱动程序或 Chrome 驱动程序通信,无论 WebDriver 客户端要求什么。
它是从以下位置复制/粘贴的: http ://www.myyesm.com/what-is-remotewebdriver/