【问题标题】:Is there a way to make Selenium Grid 2 DesiredCapabilities browser-agnostic?有没有办法让 Selenium Grid 2 DesiredCapabilities 与浏览器无关?
【发布时间】:2012-01-26 17:02:13
【问题描述】:

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

这背后的动机是我想最大化在任何给定节点上并行运行的测试数量,而无需任何一个浏览器的多个实例。对于任何给定的测试,我不在乎正在运行哪个浏览器。

作为参考,我目前使用的是 selenium server 2.17。

【问题讨论】:

    标签: selenium-grid


    【解决方案1】:

    哎呀,这很烦人。

    我很确定有一个命令行参数可以让你覆盖指定的浏览器名称,但现在我找不到它。

    如果我没记错的话,这个参数可以让你或多或少地做你所要求的——不管节点它有什么浏览器,也不管集线器是什么要求,总是启动一个特定的浏览器。

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

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

    【讨论】:

    【解决方案2】:

    给你:

    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 ...

    【讨论】:

    • 我不确定这是否能实现我所描述的。如果我没记错的话,这将注册所有功能都打开的节点,但集线器仍然必须在 DesiredCapabilities 中指定浏览器。我的节点目前注册了三种浏览器功能(Chrome、Firefox 和 IE),但集线器必须循环请求这三种功能(沿途捕获异常),以确保所有三种浏览器同时运行。我希望集线器有一种方式可以说“在一个节点上运行这个测试,并且可以免费使用任何浏览器”并让节点选择它的任何打开的。
    猜你喜欢
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    相关资源
    最近更新 更多