Kemampuan dan ChromeOptions

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:

  1. Gunakan class ChromeOptions. Ini didukung oleh Java, Python, dll.
  2. 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.

Nama Jenis Default  Deskripsi 
args  daftar string   Daftar argumen command line yang digunakan saat memulai Chrome. Argumen dengan nilai terkait harus dipisahkan dengan '=' (mis., ['start-maximized', 'user-data-dir=/tmp/temp_profile']). Lihat di sini untuk daftar argumen Chrome.
binary {i>string<i}   Jalur ke Chrome yang dapat digunakan (di Mac OS X, ini harus berupa biner sebenarnya, bukan hanya aplikasi. misalnya, '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome')
extensions daftar string   Daftar ekstensi Chrome yang akan diinstal saat memulai. Setiap item dalam daftar harus berupa ekstensi Chrome paket berenkode base-64 (.crx)
localState kamus   Kamus dengan setiap entri yang terdiri dari nama preferensi dan nilainya. Preferensi ini diterapkan ke file Status Lokal di folder data pengguna.
prefs kamus   Kamus dengan setiap entri yang terdiri dari nama preferensi dan nilainya. Preferensi ini hanya diterapkan ke profil pengguna yang digunakan. Lihat 'Preferensi' di direktori data pengguna Chrome sebagai contoh.
detach boolean salah Jika salah, Chrome akan dihentikan saat ChromeDriver dimatikan, terlepas dari apakah sesi tersebut dihentikan. Jika benar, Chrome hanya akan ditutup jika sesi dihentikan (atau ditutup). Perlu diperhatikan, jika true (benar), dan sesi tidak ditutup, ChromeDriver tidak dapat membersihkan direktori data pengguna sementara yang digunakan instance Chrome yang sedang berjalan.
debuggerAddress {i>string<i}
Alamat server debugger Chrome yang akan dihubungkan, dalam bentuk <nama host/ip:port>, misalnya '127.0.0.1:38947'
excludeSwitches daftar string   Daftar command line Chrome beralih untuk mengecualikan ChromeDriver tersebut secara default saat memulai Chrome. Jangan berikan awalan pada tombol dengan --.
minidumpPath  {i>string<i}   Direktori untuk menyimpan minidump Chrome . (Hanya didukung di Linux.)
mobileEmulation kamus   Kamus dengan nilai untuk "deviceName", atau nilai untuk "deviceMetrics" dan "userAgent". Lihat Emulasi Seluler untuk informasi selengkapnya.
perfLoggingPrefs kamus   Kamus opsional yang menentukan preferensi logging performa. Lihat di bawah untuk informasi lebih lanjut.
windowTypes daftar string   Daftar jenis jendela yang akan muncul dalam daftar handle jendela. Untuk akses ke <webview> elemen, termasuk "webview" dalam daftar ini.

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