有没有办法使Selenium Grid 2 DesiredCapabilities与浏览器无关?

时间:2012-01-26 17:02:14

标签: selenium-grid

我想知道是否有一种(最好是内置的)Selenium集线器方式来询问有任何浏览器可用的节点。基本上,我希望我的集线器指定类似“BrowserName ='any'”的内容,匹配运行少于其maxInstances的实例的节点,然后让节点决定运行哪个浏览器。

这背后的动机是我希望在任何给定节点上最大化并行运行的测试数量,而不需要任何一个浏览器的多个实例。我不关心任何给定测试运行的浏览器。

作为参考,我目前正在使用selenium server 2.17。

2 个答案:

答案 0 :(得分:0)

你走了:

java -jar selenium-server-standalone-2.14.0.jar -role node -hub http://localhost:4444/grid/register -maxSession 3 -browser browserName=firefox,maxInstances=1 -browser browserName=chrome,maxInstances=1 ...

答案 1 :(得分:0)

Ack,这很烦人。

我很确定有一个命令行参数让你覆盖指定的browserName,但现在我找不到它。

如果我的内存没有关闭,该参数可以让你或多或少地做你想要的 - 无论节点它有什么样的浏览器,无论hub 要求,总是启动一个特定的浏览器。

自我注意:为selenium启动所有命令行选项的正确列表,并可能将其提交给团队以包含在wiki中。

在任何情况下实现此目的的一种方法是编写一个自己的“CapabilityMatcher”类 - 但除非您想要创建自定义JAR,并且您想要 hub 更改浏览器,而不是单个节点。