Opsi Chrome & Kemampuan yang Diinginkan di Selenium

โšก Ringkasan Cerdas

Opsi Chrome dan Kemampuan yang Diinginkan dalam Selenium WebDriver mengontrol cara browser Chrome diluncurkan dan berperilaku selama pengujian otomatis. Bersama-sama, keduanya mengkonfigurasi argumen, ekstensi, penanganan SSL, dan pengaturan lintas browser, sehingga pengujian menjadi fleksibel, dapat diulang, dan siap digunakan. Selenium Eksekusi grid.

  • ๐ŸŒ Opsi Chrome: Mengkustomisasi sesi dengan argumen seperti start-maximized, incognito, dan headless.
  • โš™๏ธ Kemampuan yang Diinginkan: Mengatur nama browser, platform, versi, dan penerimaan sertifikat SSL.
  • ๐Ÿงฉ Ekstensi: Muat file CRX melalui otomatisasi alih-alih menginstalnya secara manual.
  • ๏ธ Menyamar dan tanpa kepala: Kode yang dapat digunakan kembali menjalankan sesi pribadi atau latar belakang untuk pipeline CI.
  • ๏ธ Selenium Kisi: Kemampuan ini memungkinkan eksekusi pengujian terdistribusi lintas browser.
  • โš ๏ธ Selenium Catatan tahun 4: DesiredCapabilities sudah usang; berikan ChromeOptions langsung ke driver.

Opsi Chrome dan Kemampuan yang Diinginkan dalam Selenium webdriver

Apa itu Kelas Opsi Chrome?

The Kelas Chromeoption adalah sebuah konsep dalam bahasa Indonesia Selenium WebDriver untuk memanipulasi berbagai properti driver Chrome. Kelas opsi Chrome umumnya digunakan bersama dengan Kemampuan yang Diinginkan untuk menyesuaikan sesi driver Chrome. Ini membantu Anda melakukan berbagai operasi seperti membuka Chrome dalam mode maksimal, menonaktifkan ekstensi yang ada, menonaktifkan pop-up, dll.

Contoh:

Contoh di bawah ini menunjukkan cara membuka browser Chrome dalam mode maksimal menggunakan kelas ChromeOptions. Kita perlu meneruskan instance kelas ChromeOptions ke inisialisasi driver web.

ChromeOptions options = new ChromeOptions()
options.addArgument("start-maximized");
ChromeDriver driver = new ChromeDriver(options);

Di bawah ini adalah daftar argumen yang tersedia dan paling umum digunakan untuk kelas ChromeOptions

  • mulai dimaksimalkan: Membuka Chrome dalam mode maksimalkan
  • penyamaran: Membuka Chrome dalam mode penyamaran
  • tanpa kepala: Membuka Chrome dalam mode tanpa kepala
  • nonaktifkan-ekstensi: Menonaktifkan ekstensi yang ada di browser Chrome
  • nonaktifkan-pemblokiran popup: Menonaktifkan pop-up yang ditampilkan di browser Chrome
  • jadikan-default-browser: Menjadikan Chrome sebagai browser default
  • versi: Mencetak versi browser chrome
  • nonaktifkan-infobar: Mencegah Chrome menampilkan pemberitahuan 'Chrome dikontrol oleh perangkat lunak otomatis

Kelas Kemampuan yang Diinginkan

Kelas Kemampuan yang Diinginkan digunakan untuk mengubah beberapa properti driver web. Ini menyediakan pasangan nilai kunci untuk mengubah properti individual driver web seperti nama browser, platform browser, dll. Metode umum kelas Kemampuan yang Diinginkan adalah metode setCapability. Ini sebagian besar digunakan dengan Selenium Grid, dimana test case yang sama perlu dijalankan pada browser yang berbeda.

Contoh:

Contoh di bawah ini menunjukkan cara mengaktifkan browser chrome untuk menerima sertifikat SSL di situs web secara default menggunakan Kemampuan yang Diinginkan untuk kelas Chrome.

// Create an object of desired capabilities class with Chrome driver
DesiredCapabilities SSLCertificate = DesiredCapabilities.chrome();
// Set the pre defined capability โ€“ ACCEPT_SSL_CERTS value to true
SSLCertificate.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
// Open a new instance of chrome driver with the desired capability
WebDriver driver = new ChromeDriver(SSLCertificate);

Di bawah ini adalah jenis kemampuan yang telah ditentukan sebelumnya yang paling umum digunakan.

Nama Kemampuan Deskripsi
TERIMA_SSL_CERTS Properti ini memberitahu browser untuk menerima Sertifikat SSL secara default
PLATFORM_NAME Properti ini digunakan untuk mengatur platform sistem operasi yang digunakan untuk mengakses situs web
BROWSER_NAME Properti ini digunakan untuk mengatur nama browser untuk instance driver web
VERSION Properti ini digunakan untuk mengatur versi browser

Opsi Chrome untuk ekstensi Adblocker

Ekstensi Adblocker pada browser Chrome dapat ditangani menggunakan kelas Opsi ChromeDriver dan Kemampuan yang Diinginkan. Berikut adalah langkah-langkah untuk mengaksesnya AdBlockekstensi er di browser Chrome menggunakan kelas Kemampuan yang Diinginkan.

Langkah 1) AdBlockEkstensi ini harus diinstal di browser Chrome sebelum menggunakan kelas Opsi Chrome

Langkah 2) ExtracFile CRX yang sesuai dengan AdBlockekstensi er melalui http://crxextractor.com/

Langkah 3) Lewati jalur File CRX yang diunduh ke kelas Opsi Chrome

Langkah 4) Buat instance driver web menggunakan kelas kemampuan yang diinginkan dan Opsi Chrome di Selenium obyek

Contoh:

Contoh di bawah ini menunjukkan cara mengaktifkan ekstensi pemblokir iklan di browser Chrome menggunakan kelas Opsi Chrome dan Kemampuan yang Diinginkan.

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("Path to CRX File"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);

ExtracFile CRX

Langkah-langkah di bawah ini menunjukkan proses extracMengakses file CRX melalui pemblokir iklan melalui situs web โ€“ http://crxextractor.com/

Langkah 1) Pergi ke http://crxextractor.com/ dan klik tombol mulai

ExtracFile CRX

Langkah 2) Gunakan ekstensi Chrome โ€“ Pemblokir Iklan. URL di bawah kotak teks. URL untuk Adblock di Chrome Web Store adalah https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

dan klik oke

ExtracFile CRX

Langkah 3) Saat mengklik Tombol OK, label tombol tersebut akan berubah menjadi Dapatkan .CRX seperti di bawah ini. Klik tombol Dapatkan .CRX, file CRX yang sesuai dengan ekstensi akan diunduh

ExtracFile CRX

Langkah 4) Simpan file ke mesin lokal, catat jalur yang disimpan. Langkah selanjutnya adalah meneruskan jalur tersimpan ke kelas Opsi Chrome

Pengiriman Code:

  1. Anda akan melihat iklan di https://demo.guru99.com/ seperti di bawah ini

ExtracFile CRX

  1. Dengan AdBlockekstensi yang diaktifkan pada iklan browser Chrome harus dinonaktifkan
package adblock;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class AdblockDemo {
public static void main(String[] args)  {
	
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");		
	ChromeOptions options = new ChromeOptions();
	options.addExtensions(new File("X://extension_3_40_1_0.crx")); 
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();
	//driver.quit();
	}
	
}

Code Penjelasan:

  1. Awalnya, Anda perlu menyetel jalur ke file chromedriver.exe menggunakan metode set properti karena Anda menggunakan Browser Chrome untuk pengujian
  2. Anda perlu mengatur jalur ke File CRX untuk menambahkan metode ekstensi
  3. Maka Anda perlu membuat objek Kemampuan yang Diinginkan Chrome di Selenium kelas dan meneruskannya ke instance driver web. Dari Selenium Versi 3.8.1, kelas kemampuan driver tidak digunakan lagi dan Anda perlu menggabungkan objek kemampuan dengan objek Opsi Chrome sebelum meneruskan argumen yang sama ke konstruktor Driver Chrome
  4. Buka URL - https://demo.guru99.com/test/simple_context_menu.html dengan ekstensi Pemblokir Iklan diaktifkan
  5. Maksimalkan dan tutup browser

CATATAN: Kami memungkinkan AdBlockeh ekstensi di browser Chrome melalui skrip otomatisasi alih-alih mengaktifkan ekstensi Adblocker secara manual di browser Chrome. File CRX adalah cara untuk mengakses ekstensi pemblokir iklan menggunakan skrip otomatisasi

Keluaran:

Browser Chrome akan diaktifkan dengan AdBlockekstensi er diaktifkan seperti di bawah ini tanpa iklan apa pun

ExtracFile CRX

Selain memuat ekstensi, ChromeOptions juga mengontrol cara kerja jendela browser itu sendiri.

Opsi Chrome untuk mode Penyamaran

Opsi Chrome dapat digunakan untuk mode penyamaran dengan menggunakan argumen yang telah ditentukan sebelumnya โ€“penyamaran.

Di bawah ini adalah contoh kode untuk melakukan hal yang sama.

Pengiriman Code:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Incognito{
public static void main(String[] args) {
	// TODO Auto-generated method stub
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
	ChromeOptions options = new ChromeOptions();
	options.addArguments("--incognito");
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);		
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();		
	//driver.quit();
	}
	}

Code Penjelasan:

  1. Awalnya, Anda perlu menyetel jalur ke file chromedriver.exe menggunakan metode set properti karena Anda menggunakan Browser Chrome untuk pengujian
  2. Maka Anda perlu membuat objek kelas Opsi Chrome dan meneruskannya ke instance driver web. Karena kami ingin membuka browser Chrome dalam mode penyamaran, Anda perlu meneruskan argumen โ€“incognito ke kelas Opsi Chrome.
  3. Selanjutnya, buat objek kelas Kemampuan yang Diinginkan dan gabungkan objek kelas Kemampuan yang Diinginkan dengan objek kelas Opsi Chrome menggunakan metode penggabungan
  4. Anda perlu membuat objek kelas Driver Chrome dan meneruskan objek Opsi Chrome sebagai argumen
  5. Terakhir, kita perlu melewati URL - https://demo.guru99.com/test/simple_context_menu.html ke metode driver.get
  6. Maksimalkan dan tutup browser

Keluaran:

Jendela browser chrome akan terbuka dalam mode Penyamaran seperti di bawah ini

Opsi Chrome Untuk Mode Penyamaran

Opsi Chrome untuk Chrome Tanpa Kepala

Browser Tanpa Kepala berjalan di latar belakang. Anda tidak akan melihat GUI browser atau operasi yang dilakukan di dalamnya.

Opsi Chrome untuk menjalankan browser Chrome dalam mode tanpa kepala dapat dicapai dengan menggunakan argumen yang telah ditentukan sebelumnya โ€“tanpa kepala.

Contoh kode untuk mencapainya disebutkan di bawah.

Contoh:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class HeadlessModeDemo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
		ChromeOptions options = new ChromeOptions();
		options.addArguments("--headless");
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability(ChromeOptions.CAPABILITY, options);
		options.merge(capabilities);
		ChromeDriver driver = new ChromeDriver(options);		
		driver.get("https://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

Code Penjelasan:

  1. Awalnya, Anda perlu menyetel jalur ke file chromedriver.exe menggunakan metode set properti karena Anda menggunakan Browser Chrome untuk pengujian
  2. Selanjutnya, buat objek kelas Opsi Chrome dan teruskan ke instance driver web. Karena kita ingin membuka browser Chrome dalam mode tanpa kepala, kita perlu meneruskan argumen โ€“tanpa kepala ke kelas Opsi Chrome.
  3. Buat objek kelas Chrome DesiredCapabilities dan gabungkan objek kelas Desired Capabilities dengan objek kelas Opsi Chrome menggunakan metode penggabungan
  4. Buat objek kelas Driver Chrome dan teruskan Opsi Chrome Selenium objek sebagai argumen
  5. Terakhir, kita perlu melewati URL - https://demo.guru99.com/ ke metode driver.get
  6. Cetak judul halaman dan tutup browser

Keluaran

Browser tidak akan terlihat untuk kode di atas karena Chrome akan bekerja dalam mode Tanpa Kepala. Judul halaman akan diambil dan ditampilkan seperti di bawah ini.

Opsi Chrome Untuk Chrome Tanpa Kepala

Pertanyaan Umum Demo Slot

Ya. Selenium 4. DesiredCapabilities yang sudah usang digantikan oleh kelas Options browser seperti ChromeOptions. Di Selenium 3 Anda menggabungkannya; di Selenium 4. Anda meneruskan ChromeOptions langsung ke driver.

Panggil addArguments dengan beberapa flag, misalnya options.addArguments dengan start-maximized dan incognito. Anda juga dapat menggabungkan beberapa panggilan. Setiap argumen menyesuaikan cara sesi Chrome diluncurkan.

addArguments meneruskan flag baris perintah seperti headless atau incognito ke Chrome. addExtensions memuat file ekstensi .crx yang sudah dikemas ke dalam sesi. Keduanya menyesuaikan perilaku tetapi memiliki tujuan yang berbeda.

Ya. Asisten AI seperti Copilot menyusun ChromeOptions dan pengaturan kemampuan, menyarankan nama argumen, dan menjelaskan API yang sudah usang. Selalu tinjau outputnya, karena nama flag dan Selenium Versi sering berubah.

Alat AI yang dapat memperbaiki diri sendiri secara otomatis memperbarui argumen, mendeteksi flag yang tidak stabil, dan menyarankan pengganti yang stabil setelah pembaruan Chrome. Hal ini mengurangi pemeliharaan untuk eksekusi headless dan ketidaksesuaian kemampuan di berbagai lingkungan CI.

Ya. ChromeOptions bekerja dengan RemoteWebDriver untuk eksekusi Grid. Anda melampirkan opsi ke sesi jarak jauh, sehingga konfigurasi yang sama dapat dijalankan di berbagai mesin dan browser yang terdistribusi.

Ini biasanya berarti versi ChromeDriver dan browser Chrome tidak cocok. Instal ChromeDriver yang sesuai, atau gunakan Selenium Manajer di Selenium 4 untuk menyelesaikan masalah driver secara otomatis.

Gunakan opsi eksperimental: peta preferensi dengan download.default_directory yang dilewatkan melalui setExperimentalOption. Chrome kemudian akan menyimpan file ke folder tersebut secara otomatis selama pengujian otomatis.

Ringkaslah postingan ini dengan: