我正在從事硒測驗。
我正在嘗試將所有測驗封裝在一個 docker 容器中。
測驗與前端通信以執行一些操作(我的意思是測驗它們)。
Selenium 運行的測驗在 docker 容器中。
前端在本地主機上運行(不在 docker 中)。
在我的 Selenium docker 中,我用主機的 ip 指定了前端的 url:172.17.0.1,我什至嘗試使用“host.docker.internal”,但它根本不起作用。
但是,如果我手動運行容器并執行“curl http://172.17.0.1:{FRONTEND_PORT}”,我會收到回復!
這意味著 docker 實際上可以與前端通信。
但是使用硒測驗它不起作用......
你知道如何解決這個問題嗎?
編輯:
我的 docker 中的 ifconfig 輸出:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX packets 97 bytes 259089 (253.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 65 bytes 4469 (4.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
uj5u.com熱心網友回復:
好的!我找到了答案!
提醒一下:Selenium 在容器中測驗。本地主機中的前端。
由于 WebDriver 在前端執行操作,因此前端發出的呼叫來自 selenium 容器的網路!
就我而言:前端就是這個 url http://localhost:8080/myrequestothebackend 上的后端
但是當 chromedriver 從 selenium 容器發出請求時,前端呼叫不起作用,因為它針對的是 selenium 容器的本地主機(而不是計算機的“真實”本地主機!)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/334707.html
標籤:码头工人 硒 docker-compose
