Cuando todos los puertos están abiertos, puede usar Selenium ChromeDriver para recopilar los puertos. Sin embargo, por política de la empresa, solo están abiertos los puertos 53,443,80. No puedo ejecutarlo cuando hago una recopilación web con Selenium ChromeDriver. Comprobando el registro de ejecución, se utiliza un determinado puerto aleatorio. Encontré una manera de configurar manualmente ese puerto. Después de configurar manualmente el puerto en 4444, agregué 4444 al puerto del firewall y no se ejecuta al inicio. ¿Cuál es el propósito de este puerto?
¿Es posible recopilar la web usando Selenium ChromeDriver abriendo solo los puertos 53, 443, 80 en la red privada?
Dígame un sitio donde pueda encontrar una lista de opciones relacionadas con la ejecución, los procesos, la estructura, etc. de Selenium y ChromeDriver.
A continuación se muestran mis opciones de ChromeDriver.
ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); options.setHeadless( _configInfo._driverHeadLess ); options.addArguments("--disable-notifications"); options.addArguments("--disable-push_messaging"); options.addArguments("--disable-extensions"); options.addArguments("--disable-cookies"); options.addArguments("--disable-plugins"); options.addArguments("--disable-mouselock"); options.addArguments("--disable-media_stream"); options.addArguments("--disable-media_stream_mic"); options.addArguments("--disable-media_stream_camera"); options.addArguments("--disable-ppapi_broker"); options.addArguments("--disable-automatic_downloads"); options.addArguments("--disable-midi_sysex"); options.addArguments("--disable-metro_switch_to_desktop"); options.addArguments("--disable-protected_media_identifier"); options.addArguments("--disable-app_banner"); options.addArguments("--disable-site_engagement"); options.addArguments("--disable-durable_storage"); options.addArguments("--whitelisted-ips"); //options.addArguments("--single-process"); //options.addArguments("--disable-dev-shm-usage"); //options.addArguments("--no-sandbox"); ChromeDriverService service = new ChromeDriverService.Builder().usingDriverExecutable(new File("/lib/chromedriver")).usingPort(4444).build(); service.start(); WebDriver _driver = new RemoteWebDriver(service.getUrl(),options);El controlador Chrome inicia un servidor y expone este servidor en el puerto especificado.
Entonces, cuando comienza la prueba, habla con el servidor hablando con la API expuesta (para eso están las API)
El servidor del controlador, a su vez, habla con el navegador a través de otros protocolos (solía ser el protocolo de cable JSON, ahora usa el protocolo W3) y hace lo que solicitamos
https://www.selenium.dev/documentation/en/webdriver/understanding_the_components/