Co oznacza port selenu chromeDriver's? [duplikować]

Dec 02 2020

Gdy wszystkie porty są otwarte, możesz użyć Selenium ChromeDriver do zebrania portów. Jednak zgodnie z polityką firmy otwarte są tylko porty 53 443,80. Nie mogę go uruchomić podczas zbierania danych w sieci przy użyciu Selenium ChromeDriver. Sprawdzając dziennik wykonania, używany jest pewien losowy port. Znalazłem sposób, aby ręcznie skonfigurować ten port. Po ręcznym ustawieniu portu na 4444 dodałem 4444 do portu firewalla i nie działa on przy starcie. Jaki jest cel tego portu?

Czy można zbierać internet za pomocą Selenium ChromeDriver, otwierając tylko porty 53, 443, 80 w sieci prywatnej?

Proszę powiedz mi stronę, na której znajdziesz listę opcji związanych z wykonywaniem Selenium i ChromeDriver, procesami, strukturą itp.

Poniżej znajdują się moje opcje 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);

Odpowiedzi

2 PDHide Dec 02 2020 at 09:27

Sterownik Chrome uruchamia serwer i ujawnia ten serwer na określonym porcie.

Więc kiedy zaczynasz test, rozmawiasz z serwerem, rozmawiając z udostępnionym API (do tego służą API)

Serwer sterownika z kolei komunikuje się z przeglądarką za pośrednictwem innych protokołów (kiedyś był to protokół przewodowy JSON, teraz używa protokołu W3) i robi to, o co prosiliśmy

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/