我们拥有大量由业务分析师决定的htmlsuite,我们希望在持续集成(或每晚)自动启动它们。问题是使用selenium-RC的机器与持续集成的机器不同:
在java中,我们使用了客户端驱动程序,它工作正常:
selenium = new DefaultSelenium(serverAddress, SERVER_PORT, browser, url);
selenium.start();
然后是selenium.click(..)等..
如果我使用我在java中创建并启动的seleniumServer,我可以启动HTMLSuite,它也可以正常工作:
RemoteControlConfiguration rcc = new RemoteControlConfiguration();
rcc.setPort(SelHelper.SERVER_PORT);
seleniumServer = new SeleniumServer(rcc);
seleniumServer.start();
HTMLLauncher launcher = new HTMLLauncher(seleniumServer);
如果我独立启动一个selenium服务器(例如远程服务器)并尝试使用htmlLauncher,我不会因为它将SeleniumServer作为参数而无法访问...
任何人都有解决方案吗?
计划B将在selenium RC机器上通过持续集成的.cmd文件在SSH中启动,其中包含以下内容:
java -jar "X:\01_Robot\SELENIUM_RC\selenium-server-1.0.1\selenium-server.jar" -htmlSuite "*firefox" "http://www.myapplication.com" "X:\mytestsuite.html"
但它会很难看,只有在我没有任何选择的情况下我才会这样做。
答案 0 :(得分:1)
我终于在https://github.com/takamori/selenium-html-client-driver/wiki上找到了一个“HtmlClientDriver”(类似于javaClientDriver),它解析了html selenese并在rc服务器上启动了命令。
答案 1 :(得分:1)
我在this project on Github here中实现了远程webdriver网格配置的示例。你或许可以从中收集一些好的信息。请参阅两个.bat脚本“startWebDriverGridHub.bat”和“startWebDriverGridNode.bat”。在您正在开发的本地计算机上(或在Jenkins服务器上)运行前者,并在远程计算机上运行后者。
我不建议以你完成它的方式启动网格,尽管它是可行的,我会说它超出了简单的Stack问题的范围。
另外,不要使用HtmlClientDriver。如果你想要无头,请查看PhantomJS驱动程序。如果您的真实目的是在远程计算机桌面上驱动浏览器,我将通过上面提供的脚本以Firefox驱动程序,Chrome或IE驱动程序的形式使用“RemoteWebDriver”。