0

我们有大量由业务分析师设计的 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 是在 SSH 中通过持续集成在 selenium RC 机器上启动一个 .cmd 文件,其中包含以下内容:

java -jar "X:\01_Robot\SELENIUM_RC\selenium-server-1.0.1\selenium-server.jar" -htmlSuite "*firefox" "http://www.myapplication.com" "X:\mytestsuite.html" 

但这会很丑陋,只有在别无选择的情况下,我才想这样做。

4

2 回答 2

1

我终于在https://github.com/takamori/selenium-html-client-driver/wiki上找到了一个“HtmlClientDriver”(类似于 javaClientDriver), 它解析 html selenese 并在 rc 服务器上启动命令。

于 2010-11-15T09:29:51.207 回答
1

我在 Github 上的这个项目中实现了一个远程 webdriver 网格配置的示例。您也许可以从中收集到一些有用的信息。请参阅两个 .bat 脚本“startWebDriverGridHub.bat”和“startWebDriverGridNode.bat”。在您正在开发的本地机器上(或在您的 Jenkins 服务器上)运行前者,然后在远程机器上运行后者。

我不建议您按照您所做的方式启动网格,尽管它是可行的,但我会说它超出了简单堆栈问题的范围。

另外,不要使用 HtmlClientDriver。如果您想要无头,请查看 PhantomJS 驱动程序。如果您的真正意图是在远程计算机桌面上驱动浏览器,我会通过我上面提供的脚本以 Firefox 驱动程序、Chrome 或 IE 驱动程序的形式使用“RemoteWebDriver”。

于 2013-05-30T04:32:56.093 回答