O que significa a porta do selênio chromeDriver? [duplicado]

Dec 02 2020

Quando todas as portas estão abertas, você pode usar o Selenium ChromeDriver para coletar as portas. No entanto, de acordo com a política da empresa, apenas as portas 53.443.80 estão abertas. Não consigo executá-lo ao fazer uma coleta na web usando o Selenium ChromeDriver. Verificando o log de execução, uma determinada porta aleatória é usada. Eu encontrei uma maneira de configurar manualmente essa porta. Depois de definir manualmente a porta para 4444, adicionei 4444 à porta do firewall e ele não funciona na inicialização. Qual é a finalidade desta porta?

É possível coletar a web usando o Selenium ChromeDriver abrindo apenas as portas 53, 443, 80 na rede privada?

Diga-me um site onde você possa encontrar uma lista de opções relacionadas à execução, processos, estrutura, etc. do Selenium e ChromeDriver

Abaixo estão minhas opções do 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);

Respostas

2 PDHide Dec 02 2020 at 09:27

O driver do Chrome inicia um servidor e expõe esse servidor na porta especificada.

Então, quando você inicia o teste, você fala com o servidor falando com a API exposta (é para isso que servem as APIs)

O servidor do driver, por sua vez, se comunica com o navegador por meio de outros protocolos (costumava ser o protocolo de fio JSON, agora usa o protocolo W3) e faz o que solicitamos

https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/remote/service/DriverService.Builder.html#usingPort(int)

https://www.selenium.dev/documentation/en/webdriver/understanding_the_components/