如何使用selenium Docker在节点浏览器上设置功能

时间:2017-04-04 02:58:34

标签: docker selenium-grid

我是selenium docker的新手。我想创建一个具有功能的Chrome / Firefox节点(Selenium Grid)。添加Selenium Node docker容器时如何添加功能? 到目前为止我找到了这个命令......

 docker run -d --link selenium-hub:hub selenium/node-firefox:2.53.0

但我不知道如何在其上添加功能。已经使用此命令但无法正常工作。

 docker run -d --link selenium-hub:hub selenium/node-firefox:2.53.0 -browser browserName=firefox,version=3.6,maxInstances=5,platform=LINUX

2 个答案:

答案 0 :(得分:2)

解决了...添加SE_OPTS将帮助您设置功能

docker run -d -e SE_OPTS="-browser browserName=chromeku,version=56.0,maxInstances=3,platform=WINDOWS" --link selenium-hub:hub selenium/node-chrome:2.53.0

答案 1 :(得分:0)

有多种方法可以做到这一点,而SE_OPTS就是其中之一,但对我来说,这是我想要完成的事情。使用SE_OPTS迫使我设置我不想改变的功能,否则它们将被重置为空/空

我想这样做:

SE_OPTS=-browser applicationName=Testing123

但我被迫做了:

SE_OPTS=-browser applicationName=Testing123,browserName=firefox,maxInstances=1,version=59.0.1

设置功能的另一种方法是提供自己的config.json

-nodeConfig /path/config.json

您可以找到default config.json

或者您可以启动节点容器并从中复制当前的容器

docker cp <containerId>:/opt/selenium/config.json /host/path/target

您还可以在github或正在运行的容器上查看entry_point.sh:

/opt/bin/entry_point.sh   

您可以通过以下方式在节点容器上运行bash:

sudo docker exec -i -t <container> bash

这将让您了解如何使用SE_OPTS以及如何生成config.json。注意只有在不提供config.json时才会生成config.json。

/opt/bin/generate_config   

通过检查generate_config,您可以看到很多ENV变量,例如: FIREFOX_VERSION,NODE_MAX_INSTANCES,NODE_APPLICATION_NAME等。

这导致了第三种设置功能的方法,即设置generate_config使用的环境变量,在我的例子中是APPLICATION_NODE_NAME

docker run -d -e "NODE_APPLICATION_NAME=Testing123"

最后,使用SE_OPTS时请注意不要意外更改值。具体来说,是浏览器版本。您可以通过查看entry_point.sh来查看浏览器版本的计算结果。

FIREFOX_VERSION=$( firefox -version | cut -d " " -f 3 )

如果您将其更改为其他内容,则无法获得所需的结果。