Pilihan Chrome & Keupayaan yang Diingini di Selenium: Headless, AdBlocker, Incognito

Apakah Kelas Pilihan Chrome?

The Kelas Chromeoptions adalah konsep dalam Selenium WebDriver untuk memanipulasi pelbagai sifat pemacu Chrome. Kelas pilihan Chrome umumnya digunakan bersama dengan Keupayaan yang Diinginkan untuk menyesuaikan sesi pemacu Chrome. Ini membantu anda melakukan pelbagai operasi seperti membuka Chrome dalam mod maksimum, mematikan sambungan yang ada, melumpuhkan pop timbul, dll.

Contoh:

Contoh di bawah menunjukkan cara untuk membuka penyemak imbas Chrome dalam mod yang dimaksimumkan menggunakan kelas ChromeOptions. Kita perlu menyampaikan contoh kelas ChromeOptions ke inisialisasi pemacu web.

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

Berikut adalah senarai argumen yang tersedia dan paling biasa digunakan untuk kelas ChromeOptions

  • mula dimaksimumkan : Membuka Chrome dalam mod memaksimumkan
  • penyamaran: Membuka Chrome dalam mod penyamaran
  • tanpa kepala: Membuka Chrome dalam mod tanpa kepala
  • lumpuhkan-sambungan : Lumpuhkan sambungan yang ada pada penyemak imbas Chrome
  • nyahdayakan-pop-blocking : Melumpuhkan pop timbul yang dipaparkan pada penyemak imbas Chrome
  • buat-penyemak imbas lalai: Menjadikan penyemak imbas lalai Chrome
  • versi : Mencetak versi penyemak imbas krom
  • lumpuhkan-infobar: Mencegah Chrome menampilkan pemberitahuan 'Chrome dikendalikan oleh perisian automatik

Dalam tutorial ini, anda akan belajar

Kelas Keupayaan yang diinginkan

Kelas Keupayaan yang Diinginkan digunakan untuk mengubah beberapa sifat pemacu web. Ia menyediakan pasangan nilai-kunci untuk mengubah sifat individu pemacu web seperti nama penyemak imbas, platform penyemak imbas, dan lain-lain. Kaedah umum kelas Keupayaan yang diinginkan adalah kaedah setCapability. Kebanyakannya digunakan dengan Selenium Grid, di mana kes ujian yang sama perlu dijalankan pada penyemak imbas yang berbeza.

Contoh:

Contoh di bawah menunjukkan cara untuk membolehkan penyemak imbas chrome menerima sijil SSL di laman web secara lalai menggunakan Keupayaan 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); 

Berikut adalah jenis keupayaan yang telah ditetapkan yang paling biasa digunakan.

Nama KeupayaanPenerangan
MENERIMA_SSL_CERTSProperti ini memberitahu penyemak imbas untuk menerima Sijil SSL secara lalai
PLATFORM_NAMEProperti ini digunakan untuk mengatur platform sistem operasi yang digunakan untuk mengakses laman web
BROWSER_NAMEProperti ini digunakan untuk menetapkan nama penyemak imbas untuk contoh pemacu web
VERSIProperti ini digunakan untuk menetapkan versi penyemak imbas

Pilihan Chrome untuk pelanjutan Adblocker

Pelanjutan Adblocker penyemak imbas Chrome dapat dikendalikan menggunakan kelas Pilihan ChromeDriver dan Keupayaan yang Diinginkan. Berikut adalah langkah-langkah untuk mengakses pelanjutan AdBlocker pada penyemak imbas Chrome menggunakan kelas Keupayaan yang Diinginkan.

Langkah 1) Sambungan AdBlocker mesti dipasang pada penyemak imbas Chrome sebelum menggunakan kelas Pilihan Chrome

Langkah 2) Ekstrak Fail CRX yang sesuai dengan pelanjutan AdBlocker melalui http://crxextractor.com/

Langkah 3) Lulus laluan Fail CRX yang dimuat turun ke kelas Pilihan Chrome

Langkah 4) Buat pemacu web menggunakan kelas keupayaan yang dikehendaki dan Pilihan Chrome dalam objek Selenium

Contoh:

Contoh di bawah menunjukkan cara mengaktifkan pelanjutan penyekat iklan pada penyemak imbas Chrome menggunakan kelas Pilihan Chrome dan Keupayaan 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); 

Ekstrak Fail CRX:

Langkah-langkah di bawah menunjukkan proses mengekstrak CRX File melalui Penyekat Iklan melalui laman web - http://crxextractor.com/

Langkah 1) Pergi ke http://crxextractor.com/ dan klik butang mula

Langkah 2) Masukkan pelanjutan krom - URL Penyekat Iklan di bawah kotak teks. URL untuk Adblock di kedai web Chrome adalah https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

dan klik ok

Langkah 3) Apabila mengklik butang OK, label butang akan berubah menjadi Get .CRX seperti di bawah. Klik pada butang Get .CRX, fail CRX yang sesuai dengan pelanjutan akan dimuat turun

Langkah 4) Simpan fail ke mesin tempatan, buat catatan jalan yang disimpan. Langkah seterusnya adalah meneruskan laluan yang disimpan ke kelas Pilihan Chrome

Contoh Kod:

  1. Anda akan melihat iklan di https://demo.on2vhf.be/ seperti di bawah

  1. Dengan pelanjutan AdBlocker diaktifkan pada penyemak imbas Chrome, iklan harus dilumpuhkan
 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.on2vhf.be/test/simple_context_menu.html'); driver.manage().window().maximize(); //driver.quit(); } } 

Penjelasan Kod :

  1. Pada mulanya, anda perlu menetapkan jalan ke file chromedriver.exe menggunakan kaedah set properti kerana anda menggunakan Penyemak Imbas Chrome untuk ujian
  2. Anda perlu menetapkan jalan ke CRX File untuk menambah kaedah peluasan
  3. Kemudian anda perlu membuat objek Kemampuan yang Diinginkan Chrome di kelas Selenium dan menyebarkannya ke contoh pemacu web. Dari versi Selenium 3.8.1, kelas kemampuan pemandu sudah tidak digunakan lagi dan anda perlu menggabungkan objek keupayaan dengan objek Pilihan Chrome sebelum menyampaikannya sama dengan argumen kepada pembangun Pemandu Chrome
  4. Buka URL - https://demo.on2vhf.be/test/simple_context_menu.html dengan pelanjutan Penyekat Iklan diaktifkan
  5. Maksimumkan dan tutup penyemak imbas

CATATAN: Kami mengaktifkan pelanjutan AdBlocker pada penyemak imbas Chrome melalui skrip automasi dan bukannya mengaktifkan pelanjutan Adblocker secara manual pada penyemak imbas Chrome. CRX File adalah cara untuk mengakses pelanjutan penyekat iklan menggunakan skrip automasi

Pengeluaran:

Penyemak imbas Chrome akan diaktifkan dengan pelanjutan AdBlocker diaktifkan seperti di bawah tanpa iklan

Pilihan Chrome untuk mod Inkognito

Pilihan Chrome boleh digunakan untuk mod penyamaran dengan menggunakan argumen yang telah ditentukan - penyamaran .

Berikut adalah contoh kod untuk mencapai perkara yang sama.

Contoh Kod:

 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.on2vhf.be/test/simple_context_menu.html'); driver.manage().window().maximize(); //driver.quit(); } } 

Penjelasan Kod :

  1. Pada mulanya, anda perlu menetapkan jalan ke file chromedriver.exe menggunakan kaedah set properti kerana anda menggunakan Penyemak Imbas Chrome untuk ujian
  2. Kemudian anda perlu membuat objek kelas Pilihan Chrome dan meneruskannya ke contoh pemacu web. Oleh kerana kami ingin membuka penyemak imbas Chrome dalam mod penyamaran, anda perlu menyampaikan argumen –kognognito ke kelas Pilihan Chrome.
  3. Seterusnya, buat objek kelas Keupayaan yang Diinginkan dan gabungkan objek kelas Keupayaan yang Diinginkan dengan objek kelas Pilihan Chrome menggunakan kaedah penggabungan
  4. Anda perlu membuat objek kelas Pemandu Chrome dan meneruskan objek Pilihan Chrome sebagai hujah
  5. Akhirnya, kita perlu meneruskan URL - https://demo.on2vhf.be/test/simple_context_menu.html ke kaedah driver.get
  6. Maksimumkan dan tutup penyemak imbas

Pengeluaran:

Tetingkap penyemak imbas krom akan dibuka dalam mod Penyamaran seperti di bawah

Pilihan Chrome untuk Chrome Tanpa Kepala

Penyemak imbas tanpa kepala berjalan di latar belakang. Anda tidak akan melihat penyemak imbas GUI atau operasi yang dijalankan di atasnya.

Pilihan Chrome untuk menjalankan penyemak imbas Chrome dalam mod tanpa kepala dapat dicapai dengan menggunakan argumen yang telah ditentukan - tanpa kepala .

Contoh kod 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.on2vhf.be/'); driver.manage().window().maximize(); String title = driver.getTitle(); System.out.println('Page Title: ' +title); driver.quit(); } } 

Penjelasan Kod :

  1. Pada mulanya, anda perlu menetapkan jalan ke file chromedriver.exe menggunakan kaedah set properti kerana anda menggunakan Penyemak Imbas Chrome untuk ujian
  2. Seterusnya, buat objek kelas Pilihan Chrome dan sampaikan ke contoh pemacu web. Oleh kerana kami ingin membuka penyemak imbas Chrome dalam mod tanpa kepala, kami perlu menyampaikan argumen –tanpa kepala ke kelas Pilihan Chrome.
  3. Buat objek kelas Chrome DesiredCapabilities dan gabungkan objek kelas Keupayaan yang diinginkan dengan objek kelas Pilihan Chrome menggunakan kaedah penggabungan
  4. Buat objek kelas Pemandu Chrome dan lulus objek Selenium Pilihan Chrome sebagai hujah
  5. Akhirnya, kita perlu meneruskan URL - https://demo.on2vhf.be/ kepada kaedah driver.get
  6. Cetak tajuk halaman dan tutup penyemak imbas

Pengeluaran

Penyemak imbas tidak akan dapat dilihat untuk kod di atas kerana Chrome akan berfungsi dalam mod tanpa kepala. Judul halaman akan diambil dan ditampilkan seperti di bawah.

Ringkasan:

  • Kelas Selenium Chrome Options digunakan untuk memanipulasi pelbagai sifat pemacu Chrome
  • Kelas Keupayaan Chrome yang diinginkan menyediakan sekumpulan pasangan nilai-kunci untuk mengubah sifat individu pemacu web seperti nama penyemak imbas, platform penyemak imbas, dll.
  • Untuk memanipulasi sebarang pelanjutan penyemak imbas Chrome, Fail CRX yang sesuai dengan pelanjutan mesti diekstrak dan mesti ditambahkan ke kelas Pilihan Chrome
  • - incognito dan –headless adalah argumen yang telah ditentukan oleh kelas Pilihan Chrome untuk menggunakan penyemak imbas Chrome dalam mod penyamaran dan mod tanpa kepala