1

所以使用网格 2,每次 selenium RC 开始时是否有一个配置文件来启动 xvfb 或 xvnc。Hub 和 Selenium RC 已经安装在不同的 linux 机器上。

另外,有没有办法在RC上运行的selenium测试和客户端(Java客户端软件)之间实现双向通信?例如)测试失败,因为在页面上找不到元素,需要通知客户端并且客户端可以提供正确的元素。

所以 selenium web 驱动程序测试不应该停止,而是等到正确的输入或客户端终止测试。有点像反馈循环,以确保考虑到 Web 应用程序的所有变化。例如)具有随机生成 ID 的表单按钮,依赖于在某些页面上随机中断的 xpath。

是否可以通过指定 selenium grid 2 启动 rc 的定期时间间隔来实现持续集成?

这是否意味着,我需要将 webdriver 测试也扩展为 Jetty 服务器?还是网?改为启动硒网络服务?

4

2 回答 2

3

要回答您的第一个问题,我建议始终在您的 RC 节点上运行 Xvfb 服务器。如果您正在运行 debian 或 ubuntu,您还可以使用 xvfb-run 启动 RC 节点:

nohup xvfb-run java -jar selenium-server-standalone-2.0rc2.jar \
      -role rc \
      -port 5555 \
      -hub http://hub:4444/grid/register 2>&1 > selenium-rc.log &

关于双向通信。为什么不直接使用 isElementPresent() api 调用并在测试中处理这个逻辑?通过在user-extensions.js和 getEval() api 调用的帮助下扩展 selenium,可以实现更复杂的交互。

使用 getEval() api 调用的示例

集线器不支持启动和停止 RC 节点。集线器的目的是调解从 selenium 客户端到活动 RC 节点的请求。如果您不能让 RC 节点始终运行,那么您可以查看 cron。

于 2011-06-14T09:39:56.847 回答
1

Selenium Grid 只是一种管理一组 Selenium 服务器并简化客户端向这些服务器分派的方法。如果你不能直接使用 Selenium 服务器做某事,你也不能使用网格。同样,如果您可以使用 Selenium Server,则可以使用网格。

因此,如果您想要一个交互式脚本,那将是可行的,但这一切都是由客户端驱动的。Selenium 服务器无法回调您的应用程序。

于 2011-06-24T20:22:59.013 回答