Opțiuni Chrome și Capabilități dorite în Selenium

⚡ Rezumat inteligent

Opțiuni Chrome și capacități dorite în Selenium WebDrivere controlează modul în care se lansează și se comportă browserul Chrome în timpul testelor automate. Împreună, acestea configurează argumente, extensii, gestionarea SSL și setări pe mai multe browsere, făcând testele flexibile, repetabile și gata de rulare. Selenium Execuția grilei.

  • 🌐 Opțiuni Chrome: Personalizează sesiunile cu argumente precum start-maximized, incognito și headless.
  • ⚙️ Capabilitati dorite: Setează numele browserului, platforma, versiunea și acceptarea certificatului SSL.
  • 🧩 Extensii: Încărcați un fișier CRX prin automatizare în loc să îl instalați manual.
  • 🕵️ Incognito și fără cap: Codul reutilizabil rulează sesiuni private sau în fundal pentru conductele CI.
  • 🖥️ Selenium Grilă: Capacitățile permit executarea de teste distribuite, pe mai multe browsere.
  • ⚠️ Selenium Notă din 4: DesiredCapabilities este depreciat; transmiteți ChromeOptions direct driverului.

Opțiuni Chrome și capacități dorite în Selenium webdriver

Ce este Chrome Options Class?

Clasa Chromeoptions este un concept în Selenium WebDriver pentru manipularea diferitelor proprietăți ale driverului Chrome. Clasa de opțiuni Chrome este utilizată în general împreună cu Capabilitățile dorite pentru personalizarea sesiunilor de driver Chrome. Vă ajută să efectuați diverse operațiuni, cum ar fi deschiderea Chrome în modul maximizat, dezactivarea extensiilor existente, dezactivarea ferestrelor pop-up etc.

Exemplu:

Exemplul de mai jos arată o modalitate de a deschide browserul Chrome în modul maximizat folosind clasa ChromeOptions. Trebuie să transmitem o instanță a clasei ChromeOptions inițializării driverului web.

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

Mai jos sunt lista argumentelor disponibile și cele mai frecvent utilizate pentru clasa ChromeOptions

  • start-maximizat: Deschide Chrome în modul de maximizare
  • incognito: Deschide Chrome în modul incognito
  • fara cap: Deschide Chrome în modul fără cap
  • dezactivare-extensii: dezactivează extensiile existente în browserul Chrome
  • dezactivați blocarea pop-up-urilor: dezactivează ferestrele pop-up afișate în browserul Chrome
  • make-default-browser: Setează browserul Chrome implicit
  • versiune: Imprimă versiunea browserului Chrome
  • disable-infobars: Împiedică Chrome să afișeze notificarea „Chrome este controlat de software automatizat

Clasa de capabilități dorite

Clasa de capabilități dorite este folosit pentru a modifica mai multe proprietăți ale driverelor web. Oferă perechi cheie-valoare pentru a modifica proprietățile individuale ale driverelor web, cum ar fi numele browserului, platforma browserului etc. O metodă comună a clasei Desired Capabilities este metoda setCapability. Este folosit mai ales cu Selenium Grid, unde același caz de testare trebuie executat pe browsere diferite.

Exemplu:

Exemplul de mai jos arată modul de a activa browserul Chrome să accepte certificate SSL pe site-uri web în mod prestabilit, utilizând funcțiile dorite pentru clasa 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);

Mai jos sunt cele mai frecvent utilizate tipuri de capabilități predefinite.

Numele capacității Descriere
ACCEPT_SSL_CERTS Această proprietate îi spune browserului să accepte certificatele SSL în mod implicit
PLATFORM_NAME Această proprietate este utilizată pentru a seta platforma sistemului de operare utilizată pentru accesarea site-ului web
BROWSER_NAME Această proprietate este utilizată pentru a seta numele browserului pentru o instanță de driver web
VERSIUNE Această proprietate va fi folosită pentru a seta versiunea browserului

Opțiuni Chrome pentru extensia Adblocker

Extensia Adblocker a browserului Chrome poate fi gestionată folosind opțiunile ChromeDriver și clasa Capabilități dorite. Mai jos sunt pașii de acces AdBlocker în browserul Chrome utilizând clasa Capabilități dorite.

Pas 1) AdBlockExtensia er trebuie instalată pe browserul Chrome înainte de a utiliza clasa Opțiuni Chrome

Pas 2) Extracfișierul CRX corespunzător AdBlockextensia er prin http://crxextractor.com/

Pas 3) Transmite calea fișierului CRX descărcat la clasa Opțiuni Chrome

Pas 4) Instanciați driverul web folosind clasa de capabilități dorită și Opțiuni Chrome în Selenium obiect

Exemplu:

Exemplul de mai jos demonstrează cum să activați extensia de blocare a reclamelor în browserul Chrome utilizând opțiunile Chrome și clasa Capabilități dorite.

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);

ExtracFișier CRX

Pașii de mai jos demonstrează procesul de extracdescărcarea fișierului CRX prin blocarea reclamelor prin intermediul site-ului web – http://crxextractor.com/

Pas 1) Accesează http://crxextractor.com/ și faceți clic pe butonul de pornire

ExtracFișier CRX

Pas 2) Introduceți extensia Chrome – Blocator de anunțuri URL sub caseta de text. URL pentru Adblock în magazinul web Chrome este https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

și faceți clic pe ok

ExtracFișier CRX

Pas 3) Făcând clic pe butonul OK, eticheta butonului se va schimba în Obține .CRX ca mai jos. Faceți clic pe butonul Obține .CRX, fișierul CRX corespunzător extensiei va fi descărcat

ExtracFișier CRX

Pas 4) Salvați fișierul pe mașina locală, notați calea salvată. Următorul pas este să treceți calea salvată către clasa Opțiuni Chrome

Eşantion Code:

  1. Veți vedea reclame la https://demo.guru99.com/ ca mai jos

ExtracFișier CRX

  1. cu AdBlockExtensia er activată pe reclamele din browserul Chrome ar trebui dezactivată
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 Explicație:

  1. Inițial, trebuie să setați calea către fișierul chromedriver.exe folosind metoda set property, deoarece utilizați browserul Chrome pentru testare
  2. Trebuie să setați calea către fișierul CRX pentru a adăuga metoda extensiilor
  3. Apoi, trebuie să creați un obiect pentru Chrome Desired Capabilities în Selenium clasa și transmiteți-o instanței driverului web. Din Selenium Versiunea 3.8.1, clasa de capabilități a driverului este depreciată și trebuie să îmbinați obiectul de capabilități cu obiectul Opțiuni Chrome înainte de a transmite același argument ca argument constructorului driverului Chrome
  4. Deschideți URL - https://demo.guru99.com/test/simple_context_menu.html cu extensia Ad Blocker activată
  5. Maximizați și închideți browserul

NOTĂ: Noi permitem AdBlocko extensie în browserul Chrome prin script de automatizare în loc să activați manual extensia Adblocker în browserul Chrome. CRX File este o modalitate de a accesa extensia de blocare a reclamelor folosind un script de automatizare

ieșire:

Browserul Chrome va fi activat cu AdBlockExtensia er activată ca mai jos, fără reclame

ExtracFișier CRX

Pe lângă încărcarea extensiilor, ChromeOptions controlează și modul în care rulează fereastra browserului în sine.

Opțiuni Chrome pentru modul incognito

Opțiunile Chrome pot fi folosite pentru modul incognito folosind argumentul predefinit -incognito.

Mai jos este un exemplu de cod pentru a realiza același lucru.

Eşantion 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 Explicație:

  1. Inițial, trebuie să setați calea către fișierul chromedriver.exe folosind metoda set property, deoarece utilizați browserul Chrome pentru testare
  2. Apoi trebuie să creați un obiect din clasa Opțiuni Chrome și să-l transmiteți instanței driverului web. Deoarece dorim să deschidem browserul Chrome în modul incognito, trebuie să treceți argumentul –incognito la clasa Opțiuni Chrome.
  3. Apoi, creați un obiect din clasa Capabilități dorite și îmbinați obiectul clasei Capabilități dorite cu obiectul clasei Opțiuni Chrome folosind metoda de îmbinare
  4. Trebuie să creați un obiect din clasa Driver Chrome și să transmiteți obiectul Opțiuni Chrome ca argument
  5. În cele din urmă, trebuie să trecem peste URL - https://demo.guru99.com/test/simple_context_menu.html la șofer.metoda obține
  6. Maximizați și închideți browserul

ieșire:

Fereastra browserului Chrome va fi deschisă în modul Incognito, ca mai jos

Opțiuni Chrome pentru modul incognito

Opțiuni Chrome pentru Chrome fără cap

Un browser Headless rulează în fundal. Nu veți vedea interfața grafică a browserului sau operațiunile operate pe acesta.

Opțiunile Chrome pentru rularea browserului Chrome în modul headless pot fi realizate folosind argumentele predefinite -zăpăcit.

Exemplu de cod pentru a-l realiza este menționat mai jos.

Exemplu:

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 Explicație:

  1. Inițial, trebuie să setați calea către fișierul chromedriver.exe folosind metoda set property, deoarece utilizați browserul Chrome pentru testare
  2. Apoi, creați un obiect din clasa Opțiuni Chrome și transmiteți-l instanței driverului web. Deoarece vrem să deschidem browserul Chrome în modul headless, trebuie să transmitem argumentul –headless la clasa Opțiuni Chrome.
  3. Creați un obiect din clasa DesiredCapabilities Chrome și îmbinați obiectul clasei Desired Capabilities cu obiectul clasei Opțiuni Chrome folosind metoda de îmbinare
  4. Creați un obiect din clasa Driver Chrome și treceți Opțiunile Chrome Selenium obiect ca argument
  5. În cele din urmă, trebuie să trecem peste URL - https://demo.guru99.com/ la șofer.metoda obține
  6. Imprimați titlul paginii și închideți browserul

producție

Browserul nu va fi vizibil pentru codul de mai sus, deoarece Chrome va funcționa în modul Headless. Titlul paginii va fi preluat și afișat ca mai jos.

Opțiuni Chrome pentru Chrome fără cap

Întrebări frecvente

Da. Selenium 4 DesiredCapabilities a fost depreciat în favoarea claselor de opțiuni ale browserului, cum ar fi ChromeOptions. În Selenium 3 le-ai îmbinat; în Selenium 4, transmiți ChromeOptions direct driverului.

Apelează addArguments cu mai multe opțiuni, de exemplu options.addArguments cu start-maximized și incognito. Poți, de asemenea, să înlănțuiești mai multe apeluri. Fiecare argument personalizează modul în care se lansează sesiunea Chrome.

`addArguments` transmite către Chrome semnalizări din linia de comandă, cum ar fi `headless` sau `incognito`. `addExtensions` încarcă în sesiune un fișier cu extensia `.crx` inclus în pachet. Ambele funcții personalizează comportamentul, dar servesc unor scopuri diferite.

Da. Asistenții AI, cum ar fi Copilot, gestionează ChromeOptions și configurațiile de capabilități, sugerează nume de argumente și explică API-urile depreciate. Verificați întotdeauna rezultatul, deoarece numele semnalizatoarelor și Selenium versiunile se schimbă frecvent.

Instrumentele de auto-reparare bazate pe inteligență artificială actualizează automat argumentele, detectează semnalizări instabile și sugerează înlocuiri stabile după actualizările Chrome. Acestea reduc întreținerea pentru rulările fără antet și nepotrivirile de capabilități în mediile de integrare continuă.

Da. ChromeOptions funcționează cu RemoteWebDriver pentru execuția Grid. Atașezi opțiunile la sesiunea la distanță, permițând aceleiași configurații să ruleze pe mașini și browsere distribuite.

De obicei, aceasta înseamnă că versiunile ChromeDriver și ale browserului Chrome nu corespund. Instalați un ChromeDriver corespunzător sau utilizați Selenium Manager în Selenium 4 pentru a rezolva automat driverul.

Folosește o opțiune experimentală: o hartă de preferințe cu directorul download.default_directory transmisă prin setExperimentalOption. Chrome salvează apoi automat fișierele în acel folder în timpul testelor automate.

Rezumați această postare cu: