我是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
答案 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 )
如果您将其更改为其他内容,则无法获得所需的结果。