每当我们使用RemoteWebDriver在远程机器上执行selenium-webdriver测试时,我们需要在远程机器中启动selenium-server-standalone-x.x.x.jar。到目前为止,我正在使用以下命令手动执行此操作:
java -jar selenium-server-standalone-x.x.x.jar
无论如何,我可以在启动远程浏览器之前以编程方式执行此操作。下面是我用来在远程浏览器中驱动ff的代码:
// Declare firefox capabilities
DesiredCapabilities capability = DesiredCapabilities.firefox();
// Create a remote web driver
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
// Navigate to test site
driver.navigate().to("http://www.google.com");
先谢谢了。
答案 0 :(得分:0)
简短的回答是,这不是直接可能的。要在远程计算机上执行命令,您需要在远程计算机上运行作为侦听器的应用程序 - 等待通过的命令。这就是selenium-server-standalone基本上实现的目标(并且超越了它然后启动测试)。因此,最简单的方法是手动启动selenium-server或作为解决方法,您可以在预设时间执行脚本(我在Mac上执行ant build作为警报)。
无论哪种方式,您需要一台服务器,它在远程计算机上运行SSH,以便您在集线器上为应用程序建立连接,以启动节点中的某些内容。
我的解决方法是设置闹钟(在Mac上 - 你可以找到类似Windows的脚本)在特定时间运行一个启动服务器的ant任务。服务器在运行实际测试前大约两分钟启动,以便服务器有时间向节点注册。