Python 在docker上使用selenium网格运行browsermob

Python 在docker上使用selenium网格运行browsermob,python,selenium,docker,browsermob,browsermob-proxy,Python,Selenium,Docker,Browsermob,Browsermob Proxy,我正在使用python客户端for browsermob来记录selenium测试的流量。Selenium grid位于一个docker容器中,其中包含用于chrome和firefox的图像。我似乎无法正确配置docker映像以连接到代理和网格。 下面是我用来创建代理和远程web驱动程序的代码: server = browsermobproxy.Server('mylocalpathtobrowsermobbin') server.start() proxy = server.create_pr

我正在使用python客户端for browsermob来记录selenium测试的流量。Selenium grid位于一个docker容器中,其中包含用于chrome和firefox的图像。我似乎无法正确配置docker映像以连接到代理和网格。 下面是我用来创建代理和远程web驱动程序的代码:

server = browsermobproxy.Server('mylocalpathtobrowsermobbin')
server.start()
proxy = server.create_proxy()
proxy.new_har()
driver = webdriver.Remote(
                command_executor='http://127.0.0.1:4444/wd/hub',
                desired_capabilities={
                    'browserName': 'chrome',
                    'chromeOptions': {
                        'args': ["--proxy-server={}".format(proxy.proxy)]}
                    })
这是我的docker compose文件:

hub: image: selenium/hub ports: - "4444:4444" chrome: image: selenium/node-chrome-debug volumes: - /dev/shm:/dev/shm links: - hub ports: - "5900:5900" hub: image: selenium/hub ports: - "4444:4444" firefox: image: selenium/node-firefox links: - hub chrome: image: selenium/node-chrome-debug volumes: - /dev/shm:/dev/shm links: - hub ports: - "5900:5900" browsermobproxy: image: spothero/browsermob-proxy:1.0.0 ports: - "9090-9191:9090-9191" expose: - "9090-9191" links: - hub - firefox - chrome 枢纽: 图片:selenium/hub 端口: - "4444:4444" 铬: 图:selenium/node chrome调试 卷数: -/dev/shm:/dev/shm 链接: -枢纽 端口: - "5900:5900"
我是docker的新手,我知道我需要公开代理用来连接的端口,但我无法让它工作。感谢您的帮助,谢谢

您还必须在容器中提升BMP。然后将其与网格链接。勾选此项以了解想法和关键实施/配置点。

根据Sergey的回答回答我自己的问题: 我将browsermob代理映像推送到docker hub:

从该存储库创建:

所有的功劳都归于谢尔盖的docker档案

我的docker撰写文件:

hub: image: selenium/hub ports: - "4444:4444" chrome: image: selenium/node-chrome-debug volumes: - /dev/shm:/dev/shm links: - hub ports: - "5900:5900" hub: image: selenium/hub ports: - "4444:4444" firefox: image: selenium/node-firefox links: - hub chrome: image: selenium/node-chrome-debug volumes: - /dev/shm:/dev/shm links: - hub ports: - "5900:5900" browsermobproxy: image: spothero/browsermob-proxy:1.0.0 ports: - "9090-9191:9090-9191" expose: - "9090-9191" links: - hub - firefox - chrome
希望这有帮助

代码在哪里运行?现在它在本地运行,包括测试和docker映像,最终它将在jenkins CI上运行,这与我的本地计算机的设置几乎相同。谢谢Sergey,我使用了文章和你实现的链接,我设法使它工作,一旦我有时间,我会发布一个完整的答案给其他人看。再次感谢!您好@eduardoreynoso,我使用了上述dockerfile。使用它,我可以启动browsermob和grid。然而,当我尝试你的代码初始化webdriver时,它失败了。因为我提供的是browsermob docker容器的ip,而不是本地主机。你能告诉我怎么解决这个问题吗?