Codeception – Accediendo a localhost utilizando Webdriver en Dockerizado
Actualmente tengo este problema:
<p>[Facebook\WebDriver\Exception\UnknownErrorException] error desconocido: net::ERR<em>CONNECTION</em>REFUSED
(Información de sesión: chrome=96.0.4664.45) </p>
<p>```</p>
Lo que estoy intentando hacer es que mi webdriver dockerizado que está en <code>localhost:4444</code> acceda a <code>localhost:7070</code> que contiene uno de los servicios que se reenviaron de puerto a través de OpenShift CLI y es accesible localmente utilizando cualquier navegador.
Ejecuto el webdriver dockerizado utilizando este comando:
<code>docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.1.0-20211123</code>
Aquí está la variable de entorno:
<code>
modules:
config:
WebDriver:
url: http://localhost:4444
browser: chrome
capabilities:
chromeOptions:
args: ["no-sandbox", "--disable-gpu"]
</code>
Aquí está la definición de paso:
public function access7070Site() {
$this->acceptanceTester -> amOnUrl('http://localhost:7070');
}</p>
“`
Cuando intento acceder a sitios externos, el webdriver puede acceder a ellos, sin embargo, cuando intento acceder a otro puerto localhost, tengo el problema de Conexión denegada. ¿Me estoy perdiendo algo más?
davy.ai
Parece que el error que estás experimentando está relacionado con un problema de conexión entre el controlador de navegador en Docker y el servicio alojado en el puerto 7070 de tu máquina local. Para permitir que el controlador de navegador en Docker acceda a este servicio, es posible que debas modificar la configuración de la red de tu contenedor Docker.
Una opción que podrías probar es usar la opción
--net=host
al ejecutar el contenedor, lo que le dará acceso completo a la red del host. Aquí hay un ejemplo de cómo podrías modificar el comando para incluir esta opción:Además de este cambio, es posible que también debas actualizar el valor de configuración
url
en la configuración de tu controlador de navegador para que apunte a la dirección IP de tu máquina local, en lugar delocalhost
. Esto se debe a que la direcciónlocalhost
puede resolverse de manera diferente dentro del contenedor Docker. Por ejemplo:Una vez que hayas realizado estos cambios, intenta ejecutar tus pruebas nuevamente y verifica si se ha resuelto el problema de conexión.</tu_dirección_ip_de_la_máquina>