码头工人中的Selenium无法在本地主机上对我的前端执行操作



我正在进行Selenium测试。
我试图封装所有的测试在一个docker容器。
测试与前端通信以做出一些动作(我的意思是测试它们)。

Selenium运行的测试位于docker容器中。
前端在本地主机上运行(而不是在docker中)

在我的Selenium docker中,我用主机的ip指定了前端的url: 172.17.0.1,我甚至尝试使用"host.docker.internal",但它根本不起作用。
但是,如果我手动运行容器并执行"curl http://172.17.0.1:{FRONTEND_PORT}"我收到了回复!
意味着docker实际上可以与前端通信。
但是对于Selenium测试,它不起作用…

你有解决这个问题的办法吗?

编辑:

ifconfig output in my docker:

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

OK!我找到答案了!

提醒一下:Selenium在容器中进行测试。

由于是WebDriver在前端执行操作,因此前端的调用来自selenium容器的网络!

在我的例子中:前端实际上是这个url的后端http://localhost:8080/myrequestothebackend

但是当chromedriver从selenium容器发出请求时,前端调用没有工作,因为它针对的是selenium容器的本地主机(而不是计算机的"真正"本地主机!)

相关内容

  • 没有找到相关文章

最新更新