Was bedeutet der Port von SeleniumchromDriver? [Duplikat]
Wenn alle Ports geöffnet sind, können Sie die Ports mit dem Selenium ChromeDriver erfassen. Gemäß den Unternehmensrichtlinien sind jedoch nur die Ports 53.443.80 geöffnet. Ich kann es nicht ausführen, wenn ich eine Web-Sammlung mit Selenium ChromeDriver mache. Beim Überprüfen des Ausführungsprotokolls wird ein bestimmter zufälliger Port verwendet. Ich habe einen Weg gefunden, diesen Port manuell zu konfigurieren. Nachdem ich den Port manuell auf 4444 eingestellt hatte, fügte ich dem Firewall-Port 4444 hinzu, der beim Start nicht ausgeführt wird. Was ist der Zweck dieses Hafens?
Ist es möglich, das Web mit dem Selenium ChromeDriver zu sammeln, indem nur die Ports 53, 443, 80 im privaten Netzwerk geöffnet werden?
Bitte teilen Sie mir eine Website mit, auf der Sie eine Liste der Optionen für die Ausführung, Prozesse, Struktur usw. von Selenium und ChromeDriver finden.
Unten finden Sie meine ChromeDriver-Optionen.
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);
Antworten
Der Chrome-Treiber startet einen Server und macht diesen Server an dem angegebenen Port verfügbar.
Wenn Sie den Test starten, sprechen Sie mit dem Server, indem Sie mit der exponierten API sprechen (dafür sind APIs gedacht).
Der Treiberserver wiederum kommuniziert mit dem Browser über andere Protokolle (früher JSON-Wire-Protokoll, jetzt W3-Protokoll) und führt das aus, was wir angefordert haben

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/