Python 在docker上使用selenium网格运行browsermob
我正在使用python客户端for browsermob来记录selenium测试的流量。Selenium grid位于一个docker容器中,其中包含用于chrome和firefox的图像。我似乎无法正确配置docker映像以连接到代理和网格。 下面是我用来创建代理和远程web驱动程序的代码: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
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,而不是本地主机。你能告诉我怎么解决这个问题吗?