Možnosti a požadované funkce Chrome v Selenium Webdriver

Co je třída možností Chrome?

Jedno Třída Chromeoptions je koncept v Selenium WebDriver pro manipulaci s různými vlastnostmi ovladače Chrome. Třída možností Chrome se obecně používá ve spojení s požadovanými schopnostmi pro přizpůsobení relací ovladače Chrome. Pomáhá vám provádět různé operace, jako je otevření Chrome v maximalizovaném režimu, deaktivace existujících rozšíření, deaktivace vyskakovacích oken atd.

Příklad:

Níže uvedený příklad ukazuje způsob, jak otevřít prohlížeč Chrome v maximalizovaném režimu pomocí třídy ChromeOptions. Potřebujeme předat instanci třídy ChromeOptions do inicializace webového ovladače.

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

Níže je uveden seznam dostupných a nejčastěji používaných argumentů pro třídu ChromeOptions

  • start-maximální: Otevře Chrome v režimu maximalizace
  • inkognito: Otevře Chrome v anonymním režimu
  • bezhlavý: Otevře Chrome v bezhlavém režimu
  • zakázání rozšíření: Zakáže existující rozšíření v prohlížeči Chrome
  • zakázat-blokování vyskakovacích oken: Deaktivuje vyskakovací okna zobrazovaná v prohlížeči Chrome
  • make-default-browser: Nastaví Chrome jako výchozí prohlížeč
  • verze: Vytiskne verzi prohlížeče Chrome
  • vypnout informační panely: Zabrání Chromu v zobrazení upozornění „Chrome je řízen automatizovaným softwarem

Třída požadovaných schopností

Třída požadovaných schopností se používá k úpravě více vlastností webových ovladačů. Poskytuje páry klíč-hodnota pro změnu jednotlivých vlastností webových ovladačů, jako je název prohlížeče, platforma prohlížeče atd. Běžnou metodou třídy Desired Capabilities je metoda setCapability. Většinou se používá s Selenium Grid, kde je třeba provést stejný testovací případ v různých prohlížečích.

Příklad:

Níže uvedený příklad ukazuje způsob, jak povolit prohlížeči Chrome přijímat certifikáty SSL na webech ve výchozím nastavení pomocí třídy Desired Capabilities for 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);

Níže jsou uvedeny nejběžněji používané předdefinované typy schopností.

Název schopnosti Description
ACCEPT_SSL_CERTS Tato vlastnost říká prohlížeči, aby ve výchozím nastavení akceptoval certifikáty SSL
PLATFORM_NAME Tato vlastnost se používá k nastavení platformy operačního systému používaného pro přístup na webovou stránku
BROWSER_NAME Tato vlastnost se používá k nastavení názvu prohlížeče pro instanci webového ovladače
VERZE Tato vlastnost se používá k nastavení verze prohlížeče

Možnosti Chrome pro rozšíření Adblocker

Rozšíření Adblocker prohlížeče Chrome lze zpracovat pomocí možností ChromeDriver a třídy Desired Capabilities. Níže jsou uvedeny kroky pro přístup AdBlockrozšíření v prohlížeči Chrome pomocí třídy Desired Capabilities.

Krok 1) AdBlockPřed použitím třídy Možnosti Chrome musí být toto rozšíření nainstalováno v prohlížeči Chrome

Krok 2) Extrahujte odpovídající soubor CRX AdBlockrozšíření přes http://crxextractor.com/

Krok 3) Předejte staženou cestu k souboru CRX třídě Možnosti Chrome

Krok 4) Vytvořte instanci webového ovladače pomocí požadované třídy schopností a možností Chrome v Selenium objekt

Příklad:

Níže uvedený příklad ukazuje, jak aktivovat rozšíření pro blokování reklam v prohlížeči Chrome pomocí třídy Možnosti Chrome a požadované schopnosti.

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

Extrahujte soubor CRX

Níže uvedené kroky demonstrují proces extrahování souboru CRX pomocí Ad Blocker přes web – http://crxextractor.com/

Krok 1) Jít do http://crxextractor.com/ a klikněte na tlačítko Start

Extrahujte soubor CRX

Krok 2) Do textového pole zadejte rozšíření pro Chrome – Ad Blocker URL. Adresa URL pro Adblock v internetovém obchodě Chrome je https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

a klikněte na OK

Extrahujte soubor CRX

Krok 3) Po klepnutí na tlačítko OK se označení tlačítka změní na Get .CRX, jak je uvedeno níže. Klikněte na tlačítko Získat .CRX, stáhne se soubor CRX odpovídající příponě

Extrahujte soubor CRX

Krok 4) Uložte soubor na místní počítač, poznamenejte si uloženou cestu. Dalším krokem je předání uložené cesty třídě Možnosti Chrome

Ukázkový kód:

  1. Reklamy uvidíte na http://demo.guru99.com/ jak je uvedeno níže

Extrahujte soubor CRX

  1. S AdBlockRozšíření povolené v reklamách v prohlížeči Chrome by mělo být zakázáno
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("http://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();
	//driver.quit();
	}
	
}

Vysvětlení kódu:

  1. Zpočátku je třeba nastavit cestu k souboru chromedriver.exe pomocí metody set property, protože k testování používáte prohlížeč Chrome
  2. Chcete-li přidat metodu rozšíření, musíte nastavit cestu k souboru CRX
  3. Poté musíte vytvořit objekt s požadovanými schopnostmi Chrome Selenium třídy a předejte jej instanci webového ovladače. Z Selenium Verze 3.8.1, třída schopností ovladače je zastaralá a musíte sloučit objekt schopností s objektem Možnosti Chrome, než totéž předáte jako argument konstruktoru ovladače Chrome
  4. Otevřete URL – http://demo.guru99.com/test/simple_context_menu.html s povoleným rozšířením Ad Blocker
  5. Maximalizujte a zavřete prohlížeč

POZNÁMKA: Umožňujeme AdBlocker prodloužení v prohlížeči Chrome prostřednictvím automatizačního skriptu namísto ručního povolení rozšíření Adblocker v prohlížeči Chrome. CRX File je způsob, jak získat přístup k rozšíření pro blokování reklam pomocí automatizačního skriptu

Výstup:

Prohlížeč Chrome bude povolen s AdBlockrozšíření povoleno, jak je uvedeno níže, bez jakýchkoli reklam

Extrahujte soubor CRX

Možnosti Chrome pro anonymní režim

Možnosti Chrome lze použít pro anonymní režim pomocí předdefinovaného argumentu –inkognito.

Níže je ukázkový kód, jak toho dosáhnout.

Ukázkový kód:

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("http://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();		
	//driver.quit();
	}
	}

Vysvětlení kódu:

  1. Zpočátku je třeba nastavit cestu k souboru chromedriver.exe pomocí metody set property, protože k testování používáte prohlížeč Chrome
  2. Poté musíte vytvořit objekt třídy Možnosti Chrome a předat jej instanci webového ovladače. Protože chceme prohlížeč Chrome otevřít v režimu inkognito, musíte argument –inkognito předat třídě Možnosti Chrome.
  3. Dále vytvořte objekt třídy Desired Capabilities a sloučte objekt třídy Desired Capabilities s objektem třídy Možnosti Chrome pomocí metody sloučení
  4. Musíte vytvořit objekt třídy Chrome Driver a předat objekt Možnosti Chrome jako argument
  5. Nakonec musíme předat URL – http://demo.guru99.com/test/simple_context_menu.html na metodu driver.get
  6. Maximalizujte a zavřete prohlížeč

Výstup:

Okno prohlížeče Chrome se otevře v anonymním režimu, jak je uvedeno níže

Možnosti Chrome pro anonymní režim

Možnosti prohlížeče Chrome pro bezhlavý Chrome

Bezhlavý prohlížeč běží na pozadí. Neuvidíte grafické uživatelské rozhraní prohlížeče ani operace, které na něm byly provedeny.

Možnosti Chrome pro spuštění prohlížeče Chrome v bezhlavém režimu lze provést pomocí předdefinovaných argumentů –bezhlavý.

Ukázkový kód, jak toho dosáhnout, je uveden níže.

Příklad:

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("http://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

Vysvětlení kódu:

  1. Zpočátku je třeba nastavit cestu k souboru chromedriver.exe pomocí metody set property, protože k testování používáte prohlížeč Chrome
  2. Dále vytvořte objekt třídy Možnosti Chrome a předejte jej instanci webového ovladače. Protože chceme otevřít prohlížeč Chrome v režimu bez hlavy, musíme argument –headless předat třídě Možnosti Chrome.
  3. Vytvořte objekt třídy DesiredCapabilities Chrome a slučte objekt třídy Desired Capabilities s objektem třídy Možnosti Chrome pomocí metody sloučení
  4. Vytvořte objekt třídy Chrome Driver a předejte možnosti Chrome Selenium objekt jako argument
  5. Nakonec musíme předat URL – http://demo.guru99.com/ na metodu driver.get
  6. Vytiskněte název stránky a zavřete prohlížeč

Výstup

Prohlížeč nebude pro výše uvedený kód viditelný, protože Chrome bude pracovat v režimu Headless. Titulek stránky bude načten a zobrazen, jak je uvedeno níže.

Možnosti Chrome pro bezhlavý Chrome

Shrnutí

  • Selenium Třída Možnosti Chrome se používá k manipulaci s různými vlastnostmi ovladače Chrome
  • Třída Desired Chrome Capabilities poskytuje sadu párů klíč–hodnota pro úpravu jednotlivých vlastností webového ovladače, jako je název prohlížeče, platforma prohlížeče atd.
  • Chcete-li manipulovat s jakýmikoli rozšířeními prohlížeče Chrome, musí být extrahován soubor CRX odpovídající tomuto rozšíření a musí být přidán do třídy Možnosti Chrome
  • –inkognito a –headless jsou předdefinované argumenty poskytované třídou Možnosti Chrome pro používání prohlížeče Chrome v anonymním režimu a bezhlavém režimu