Kemampuan adalah opsi yang dapat Anda gunakan untuk menyesuaikan dan mengonfigurasi sesi ChromeDriver. Halaman ini mendokumentasikan semua kemampuan yang didukung ChromeDriver dan cara menggunakannya.
API bahasa WebDriver menyediakan cara untuk meneruskan kemampuan ke ChromeDriver. Mekanisme yang tepat berbeda-beda menurut bahasa, tetapi sebagian besar bahasa menggunakan salah satu atau kedua mekanisme berikut:
- Gunakan class
ChromeOptions
. Hal ini didukung oleh Java, Python, dll. - Gunakan class
DesiredCapabilities
. Hal ini didukung oleh Python, Ruby, dll. Meskipun juga tersedia di Java, penggunaannya di Java tidak digunakan lagi.
Menggunakan class ChromeOptions
Anda dapat membuat instance ChromeOptions
, yang memiliki metode praktis untuk menetapkan kemampuan khusus ChromeDriver. Kemudian, Anda dapat meneruskan objek ChromeOptions
ke konstruktor ChromeDriver:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Sejak Selenium versi 3.6.0, class ChromeOptions
di Java juga mengimplementasikan
antarmuka Capabilities
, yang memungkinkan Anda menentukan kemampuan WebDriver
lain yang tidak khusus untuk ChromeDriver.
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Menggunakan DesiredCapabilities
Untuk menggunakan DesiredCapabilities
, Anda perlu mengetahui nama kemampuan dan
jenis nilai yang diperlukan. Lihat daftar lengkap.
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
Kasus penggunaan umum
Menggunakan profil kustom
Secara default, ChromeDriver membuat profil sementara baru untuk setiap sesi. Anda mungkin ingin menetapkan preferensi khusus atau hanya menggunakan profil kustom secara keseluruhan, yang juga disebut direktori data pengguna.
Jika menggunakan profil sementara, Anda dapat menggunakan kemampuan chrome.prefs
untuk
menentukan preferensi yang akan diterapkan setelah Chrome dimulai. Untuk profil kustom, Anda dapat
menggunakan tombol command line Chrome user-data-dir
untuk memberi tahu Chrome profil
mana yang akan digunakan:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Buat profil kustom Anda sendiri dengan menjalankan Chrome di command line atau
dengan ChromeDriver, menggunakan tombol user-data-dir
yang ditetapkan ke beberapa direktori baru.
Jika jalur tidak ada, Chrome akan membuat profil baru di lokasi yang ditentukan. Kemudian, Anda dapat mengubah setelan profil, dan ChromeDriver dapat menggunakan
profil tersebut di masa mendatang. Buka chrome://version
di browser untuk melihat
profil yang digunakan Chrome.
Memulai Chrome dalam ukuran maksimal
Mulai Chrome yang dimaksimalkan menggunakan tombol start-maximized
:
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Menggunakan file yang dapat dieksekusi Chrome di lokasi non-standar
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Memblokir jendela dialog
Secara default, ChromeDriver mengonfigurasi Chrome untuk mengizinkan jendela pop-up. Jika Anda ingin memblokir pop-up, dan memulihkan perilaku Chrome normal saat tidak dikontrol oleh ChromeDriver, lakukan tindakan berikut:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
Menetapkan direktori download
Kode berikut dapat digunakan untuk mengonfigurasi Chrome agar mendownload file ke direktori tertentu. Namun, ada beberapa hal yang perlu diperhatikan:
- Chrome tidak mengizinkan penggunaan direktori tertentu untuk download. Secara khusus, Anda tidak dapat menggunakan folder desktop sebagai direktori download. Di Linux, Anda tidak dapat menggunakan direktori utama untuk mendownload. Daftar persis direktori yang dilarang dapat berubah, jadi sebaiknya Anda menggunakan direktori unik yang tidak memiliki arti khusus bagi sistem.
- ChromeDriver tidak otomatis menunggu download selesai. Jika Anda memanggil
driver.quit()
terlalu cepat, Chrome mungkin akan dihentikan sebelum download selesai. - Untuk hasil terbaik, gunakan jalur lengkap, karena jalur relatif tidak selalu berfungsi.
- Di Windows, penggunaan
\` as path separators.
/` tidak dapat diandalkan.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Kemampuan yang dikenal
Baca dokumentasi Selenium dan standar WebDriver W3C untuk kemampuan standar yang diterima oleh ChromeDriver. Di sini, kami mencantumkan kemampuan khusus Chrome.
Objek ChromeOptions
Sebagian besar kemampuan khusus Chrome ditampilkan melalui objek
ChromeOptions
. Dalam beberapa bahasa, metode ini diterapkan oleh class ChromeOptions
. Dalam
bahasa lain, kata disimpan dalam kamus goog:chromeOptions
dalam
kemampuan yang dipilih.
Objek perfLoggingPrefs
Kamus perfLoggingPrefs
memiliki format berikut. Semua kunci bersifat opsional:
Kemampuan yang Ditampilkan
Berikut adalah daftar semua kemampuan khusus Chrome yang ditampilkan, dengan kata lain, apa yang ditampilkan ChromeDriver saat Anda membuat sesi baru.