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 memberikan cara untuk meneruskan kemampuan ke ChromeDriver. Mekanisme persisnya berbeda menurut bahasa, tetapi sebagian besar bahasa menggunakan salah satu atau kedua mekanisme berikut:
- Gunakan class
ChromeOptions
. Ini didukung oleh Java, Python, dll. - Gunakan class
DesiredCapabilities
. 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 mudah untuk menyetel kemampuan khusus ChromeDriver. Anda kemudian dapat meneruskan ChromeOptions
ke dalam 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
, sehingga memungkinkan Anda menentukan kemampuan WebDriver lainnya yang tidak spesifik 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 Desired tingkatkan
Untuk menggunakan DesiredCapabilities
, Anda perlu mengetahui nama kemampuan dan jenis nilai yang diperlukan. Lihat daftar lengkapnya di sini.
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 (juga disebut direktori data pengguna)
Secara default, ChromeDriver akan membuat profil sementara baru untuk setiap sesi. Terkadang Anda mungkin ingin menetapkan preferensi khusus atau cukup menggunakan profil khusus sekaligus. Jika yang pertama, Anda dapat menggunakan 'chrome.prefs' (dijelaskan nanti di bawah) untuk menentukan preferensi yang akan diterapkan setelah Chrome dimulai. Jika yang terakhir, Anda dapat menggunakan tombol command line Chrome user-data-dir
untuk memberi tahu Chrome profil yang akan digunakan:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Anda dapat membuat profil kustom sendiri dengan hanya menjalankan Chrome (di command line atau melalui ChromeDriver) dengan tombol user-data-dir
disetel ke beberapa direktori baru. Jika jalur tidak ada, Chrome akan membuat profil baru di lokasi yang ditentukan. Kemudian, Anda dapat mengubah setelan profil sesuai keinginan, dan ChromeDriver dapat menggunakan profil ini pada masa mendatang. Buka chrome://version di browser untuk melihat profil yang digunakan Chrome.
Mulai Chrome dengan ukuran yang dimaksimalkan
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Menggunakan file Chrome yang dapat dieksekusi di lokasi non-standar
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Blokir jendela dialog
Secara default, ChromeDriver mengonfigurasi Chrome untuk mengizinkan jendela pop-up. Jika Anda ingin memblokir pop-up (yakni memulihkan perilaku Chrome normal saat tidak dikontrol oleh ChromeDriver), lakukan tindakan berikut:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
Setel direktori download
Kode berikut dapat digunakan untuk mengonfigurasi Chrome agar mendownload file ke direktori tertentu. Namun, ada beberapa hal yang harus diperhatikan:
- Chrome melarang penggunaan direktori tertentu untuk mendownload. Secara khusus, Anda tidak dapat menggunakan folder desktop sebagai direktori download. Di Linux, Anda juga tidak dapat menggunakan direktori {i>home<i} untuk mengunduh. Karena daftar pasti direktori terlarang dapat berubah sewaktu-waktu, sebaiknya Anda menggunakan direktori yang tidak memiliki arti khusus bagi sistem.
- ChromeDriver tidak menunggu download selesai secara otomatis. Jika Anda terlalu cepat memanggil driver.quit(), Chrome mungkin akan berhenti sebelum proses download selesai.
- Jalur relatif tidak selalu berfungsi. Untuk hasil terbaik, gunakan jalur lengkap.
- Di Windows, Gunakan "" sebagai pemisah jalur. Menggunakan "/" tidak dapat diandalkan di Windows.
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 diketahui
Lihat dokumentasi Selenium dan standar W3C WebDriver untuk mengetahui kemampuan yang diterima oleh ChromeDriver. Di sini kami hanya mencantumkan opsi spesifik per Chrome kemampuan IT.
Objek ChromeOptions
Sebagian besar kemampuan khusus Chrome diekspos melalui ChromeOptions
. Dalam beberapa bahasa, hal ini diimplementasikan oleh class ChromeOptions
. Di beberapa
bahasa lain, file tersebut disimpan dalam kamus goog:chromeOptions
di
kapabilitas yang diinginkan.
Objek perfLoggingPrefs
Kamus perfLoggingPrefs memiliki format berikut (semua kunci bersifat opsional):
Nama | Jenis | Default | Deskripsi |
---|---|---|---|
enableNetwork
|
boolean | true | Apakah akan mengumpulkan peristiwa dari domain Jaringan atau tidak. |
enablePage
|
boolean | true | Apakah akan mengumpulkan peristiwa dari Domain halaman atau tidak. |
traceCategories
|
string | (kosong) | String kategori pelacakan Chrome yang dipisahkan koma yang peristiwa rekaman aktivitasnya harus dikumpulkan. String yang tidak ditentukan atau kosong akan menonaktifkan perekaman aktivitas. |
bufferUsageReportingInterval
|
bilangan bulat positif | 1000 | Jumlah milidetik yang diminta antara peristiwa penggunaan buffer pelacakan DevTools. Misalnya, jika 1.000, maka sekali per detik, DevTools akan melaporkan seberapa penuh buffer pelacakan. Jika laporan menunjukkan bahwa penggunaan buffer mencapai 100%, peringatan akan diberikan. |
Kemampuan yang Ditampilkan
Ini adalah daftar semua kemampuan yang ditampilkan khusus Chrome. (yaitu, apa yang ditampilkan ChromeDriver saat Anda membuat sesi baru)
Nama | Jenis | Deskripsi |
---|---|---|
chrome.chromedriverVersion
|
{i>string<i} | versi ChromeDriver |
userDataDir
|
{i>string<i} | jalur ke direktori data pengguna yang digunakan Chrome; perhatikan, ini ada di dalam 'chrome' kamus |