如何将Selenium独立Docker容器与主机网络正确链接?

时间:2018-10-27 22:54:48

标签: python selenium docker docker-networking

我正在运行两个docker容器,如下所示:

一个代表selenium/standalone-chrome

$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome

并且主容器使用主机网络连接到在本地主机上运行的MySQL

$ docker run --rm --network="host" $(IMAGE_REPO)

但是当我尝试在主容器中启动驱动程序

from selenium import webdriver
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', 
                desired_capabilities=webdriver.DesiredCapabilities.CHROME)

我收到的错误消息是

urllib3.exceptions.ProtocolError: ('Connection aborted.', BadStatusLine("''",))

urllib3.exceptions.ProtocolError: ('Connection aborted.', error(104, 'Connection reset by peer'))

在尝试建立容器时,我是否忘记了任何/任何参数?还是传递给command_executor的值不应该是'http://127.0.0.1:4444/wd/hub'

我也尝试使用docker bridge网络,但后来我不知道如何连接到本地主机上的MySQL服务器

SQLALCHEMY_URI = '{driver}://{user}:{pwd}@{host}/{db}?charset=utf8' \
.format(
    driver='mysql+pymysql',
    host='127.0.0.1:3306',
    user='root',
    pwd='0000',
    db='default'
)

1 个答案:

答案 0 :(得分:0)

更新Dockerfile中的以下库:

将Selenium库版本设置为3.3.1(selenium == 3.3.1)。

即:使用Selenium图像,其版本为3.3.1。

使用 selenium / node-chrome:3.3.1 代替 selenium / node-chrome:3.141.59-gold