Apa arti port selenium chromeDriver? [duplikat]

Dec 02 2020

Saat semua port terbuka, Anda dapat menggunakan Selenium ChromeDriver untuk mengumpulkan port. Namun, sesuai kebijakan perusahaan, hanya pelabuhan 53.443.80 yang terbuka. Saya tidak dapat menjalankannya saat melakukan pengumpulan web menggunakan Selenium ChromeDriver. Memeriksa log eksekusi, port acak tertentu digunakan. Saya menemukan cara untuk mengkonfigurasi port itu secara manual. Setelah secara manual mengatur port ke 4444, saya menambahkan 4444 ke port firewall dan tidak berjalan saat startup. Apa tujuan pelabuhan ini?

Apakah mungkin mengumpulkan web menggunakan Selenium ChromeDriver hanya dengan membuka port 53, 443, 80 di jaringan pribadi?

Tolong beri tahu saya situs tempat Anda dapat menemukan daftar opsi yang terkait dengan Selenium dan eksekusi ChromeDriver, proses, struktur, dll.

Berikut adalah opsi ChromeDriver saya.

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);

Jawaban

2 PDHide Dec 02 2020 at 09:27

Driver Chrome memulai server dan mengekspos server ini pada porta yang ditentukan.

Jadi saat Anda memulai pengujian, Anda berbicara ke server dengan berbicara ke API yang terekspos (untuk itulah API itu)

Server driver pada gilirannya berbicara ke browser melalui protokol lain (dulu adalah protokol kabel JSON, sekarang menggunakan protokol W3) Dan melakukan apa yang kami minta

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/