Chrome-Optionen und gewünschte Funktionen in Selenium Webtreiber
Was ist die Chrome Options-Klasse?
Die Chromeoptions-Klasse ist ein Konzept in Selenium WebDriver zum Bearbeiten verschiedener Eigenschaften des Chrome-Treibers. Die Chrome-Optionsklasse wird im Allgemeinen in Verbindung mit Desired Capabilities zum Anpassen von Chrome-Treibersitzungen verwendet. Sie hilft Ihnen beim Ausführen verschiedener Vorgänge, z. B. beim Öffnen von Chrome im maximierten Modus, beim Deaktivieren vorhandener Erweiterungen, beim Deaktivieren von Popups usw.
Ejemplo:
Das folgende Beispiel zeigt eine Möglichkeit, den Chrome-Browser mithilfe der ChromeOptions-Klasse im maximierten Modus zu öffnen. Wir müssen eine Instanz der ChromeOptions-Klasse an die Webtreiberinitialisierung übergeben.
ChromeOptions options = new ChromeOptions()
options.addArgument("start-maximized");
ChromeDriver driver = new ChromeDriver(options);
Nachfolgend finden Sie eine Liste der verfügbaren und am häufigsten verwendeten Argumente für die ChromeOptions-Klasse
- startmaximiert: Öffnet Chrome im Maximierungsmodus
- inkognito: Öffnet Chrome im Inkognito-Modus
- kopflos: Öffnet Chrome im Headless-Modus
- Erweiterungen deaktivieren: Deaktiviert vorhandene Erweiterungen im Chrome-Browser
- Popup-Blockierung deaktivieren: Deaktiviert Popups, die im Chrome-Browser angezeigt werden
- make-default-browser: Macht Chrome zum Standardbrowser
- Version: Druckt die Chrome-Browserversion
- Infoleisten deaktivieren: Verhindert, dass Chrome die Benachrichtigung „Chrome wird von automatisierter Software gesteuert“ anzeigt
Klasse „Gewünschte Fähigkeiten“.
Gewünschte Fähigkeitsklasse wird verwendet, um mehrere Eigenschaften von Webtreibern zu ändern. Es stellt Schlüssel-Wert-Paare bereit, um einzelne Eigenschaften von Webtreibern wie Browsername, Browserplattform usw. zu ändern. Eine gängige Methode der Desired Capabilities-Klasse ist die setCapability-Methode. Es wird hauptsächlich mit verwendet Selenium Raster, in dem derselbe Testfall auf verschiedenen Browsern ausgeführt werden muss.
Ejemplo:
Das folgende Beispiel zeigt, wie der Chrome-Browser mithilfe der Klasse „Desired Capabilities for Chrome“ standardmäßig SSL-Zertifikate auf Websites akzeptieren kann.
// 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);
Nachfolgend sind die am häufigsten verwendeten vordefinierten Fähigkeitstypen aufgeführt.
| Funktionsname | Beschreibung |
|---|---|
| ACCEPT_SSL_CERTS | Diese Eigenschaft weist den Browser an, standardmäßig SSL-Zertifikate zu akzeptieren |
| Platform_name | Mit dieser Eigenschaft wird die Betriebssystemplattform festgelegt, die für den Zugriff auf die Website verwendet wird. |
| BROWSER_NAME | Mit dieser Eigenschaft wird der Browsername für eine Webtreiberinstanz festgelegt |
| VERSION | Mit dieser Eigenschaft wird die Browserversion festgelegt |
Chrome-Optionen für die Adblocker-Erweiterung
Die Adblocker-Erweiterung des Chrome-Browsers kann mithilfe der ChromeDriver-Optionen und der Desired Capabilities-Klasse verwaltet werden. Nachfolgend finden Sie die Schritte zum Zugriff AdBlockEr-Erweiterung im Chrome-Browser mithilfe der Desired Capabilities-Klasse.
Schritt 1) AdBlockDie Erweiterung „Er“ muss im Chrome-Browser installiert werden, bevor die Chrome-Optionsklasse verwendet werden kann
Schritt 2) Extrahieren Sie die entsprechende CRX-Datei AdBlocker-Erweiterung über http://crxextractor.com/
Schritt 3) Übergeben Sie den heruntergeladenen CRX-Dateipfad an die Chrome-Optionsklasse
Schritt 4) Instanziieren Sie den Webtreiber mit der gewünschten Funktionsklasse und den Chrome-Optionen in Selenium Objekt
Ejemplo:
Das folgende Beispiel zeigt, wie Sie die Werbeblocker-Erweiterung im Chrome-Browser mithilfe der Chrome-Optionen und der Klasse „Gewünschte Funktionen“ aktivieren.
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);
CRX-Datei extrahieren
Die folgenden Schritte veranschaulichen den Prozess des Extrahierens einer CRX-Datei über den Ad Blocker über die Website – http://crxextractor.com/
Schritt 1) Gehe zu http://crxextractor.com/ und klicken Sie auf die Schaltfläche „Start“.
Schritt 2) Geben Sie die Chrome-Erweiterung – Ad Blocker-URL unter dem Textfeld ein. Die URL für Adblock im Chrome Web Store lautet https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
und klicken Sie auf OK
Schritt 3) Wenn Sie auf die Schaltfläche „OK“ klicken, ändert sich die Beschriftung der Schaltfläche in „Get .CRX“ (siehe unten). Klicken Sie auf die Schaltfläche „Get .CRX“. Die der Erweiterung entsprechende CRX-Datei wird heruntergeladen
Schritt 4) Speichern Sie die Datei auf dem lokalen Computer und notieren Sie sich den gespeicherten Pfad. Der nächste Schritt besteht darin, den gespeicherten Pfad an die Chrome-Optionsklasse zu übergeben
Beispielcode:
- Sie sehen Anzeigen unter https://demo.guru99.com/ wie nachstehend
- Mit AdBlockDie für Chrome-Browseranzeigen aktivierte Erweiterung sollte deaktiviert werden
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 Erklärung:
- Zunächst müssen Sie den Pfad zur Datei chromedriver.exe mithilfe der Set-Property-Methode festlegen, da Sie den Chrome-Browser zum Testen verwenden
- Sie müssen den Pfad zur CRX-Datei festlegen, um die Erweiterungsmethode hinzuzufügen
- Dann müssen Sie ein Objekt mit den gewünschten Chrome-Funktionen erstellen Selenium Klasse und übergeben Sie sie an die Webtreiberinstanz. Aus Selenium In der Version 3.8.1 ist die Treiberfunktionsklasse veraltet und Sie müssen das Funktionsobjekt mit dem Chrome-Optionsobjekt zusammenführen, bevor Sie es als Argument an den Chrome-Treiberkonstruktor übergeben
- Öffnen Sie die URL – https://demo.guru99.com/test/simple_context_menu.html mit aktivierter Ad-Blocker-Erweiterung
- Maximieren und schließen Sie den Browser
Anmerkungen: Wir ermöglichen AdBlockäh Erweiterung im Chrome-Browser über ein Automatisierungsskript, anstatt die Adblocker-Erweiterung im Chrome-Browser manuell zu aktivieren. CRX File ist eine Möglichkeit, über ein Automatisierungsskript auf die Adblocker-Erweiterung zuzugreifen
Ausgang:
Der Chrome-Browser wird mit aktiviert AdBlockEr-Erweiterung wie unten ohne Werbung aktiviert
Chrome-Optionen für den Inkognito-Modus
Chrome-Optionen können für den Inkognito-Modus verwendet werden, indem das vordefinierte Argument verwendet wird:Inkognito.
Unten finden Sie den Beispielcode, um dasselbe zu erreichen.
Beispielcode:
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 Erklärung:
- Zunächst müssen Sie den Pfad zur Datei chromedriver.exe mithilfe der Set-Property-Methode festlegen, da Sie den Chrome-Browser zum Testen verwenden
- Anschließend müssen Sie ein Objekt der Chrome-Optionsklasse erstellen und es an die Webtreiberinstanz übergeben. Da wir den Chrome-Browser im Inkognito-Modus öffnen möchten, müssen Sie das Argument –incognito an die Chrome-Optionsklasse übergeben.
- Erstellen Sie als Nächstes ein Objekt der Klasse „Desired Capabilities“ und führen Sie das Klassenobjekt „Desired Capabilities“ mithilfe der Merge-Methode mit dem Klassenobjekt „Chrome Options“ zusammen
- Sie müssen ein Objekt der Chrome-Treiberklasse erstellen und das Chrome-Optionsobjekt als Argument übergeben
- Schließlich müssen wir die URL übergeben – https://demo.guru99.com/test/simple_context_menu.html zur Methode „driver.get“.
- Maximieren und schließen Sie den Browser
Ausgang:
Das Chrome-Browserfenster wird wie folgt im Inkognito-Modus geöffnet
Chrome-Optionen für Headless Chrome
Ein Headless-Browser läuft im Hintergrund. Sie sehen weder die grafische Benutzeroberfläche des Browsers noch die darauf ausgeführten Vorgänge.
Chrome-Optionen zum Ausführen des Chrome-Browsers im Headless-Modus können mithilfe der vordefinierten Argumente erreicht werden:kopflos.
Beispielcode, um dies zu erreichen, ist unten aufgeführt.
Ejemplo:
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 Erklärung:
- Zunächst müssen Sie den Pfad zur Datei chromedriver.exe mithilfe der Set-Property-Methode festlegen, da Sie den Chrome-Browser zum Testen verwenden
- Erstellen Sie als Nächstes ein Objekt der Chrome-Optionsklasse und übergeben Sie es an die Webtreiberinstanz. Da wir den Chrome-Browser im Headless-Modus öffnen möchten, müssen wir das Argument –headless an die Chrome-Optionsklasse übergeben.
- Erstellen Sie ein Objekt der Chrome-Klasse „DesiredCapabilities“ und führen Sie das Klassenobjekt „Desired Capabilities“ mithilfe der Merge-Methode mit dem Klassenobjekt „Chrome Options“ zusammen
- Erstellen Sie ein Objekt der Chrome-Treiberklasse und übergeben Sie die Chrome-Optionen Selenium Objekt als Argument
- Schließlich müssen wir die URL übergeben – https://demo.guru99.com/ zur Methode „driver.get“.
- Drucken Sie den Seitentitel aus und schließen Sie den Browser
Ausgang
Der Browser ist für den obigen Code nicht sichtbar, da Chrome im Headless-Modus arbeitet. Der Seitentitel wird abgerufen und wie unten angezeigt.
Zusammenfassung
- Selenium Die Chrome-Optionsklasse wird zum Bearbeiten verschiedener Eigenschaften des Chrome-Treibers verwendet
- Die Klasse „Desired Chrome Capabilities“ stellt eine Reihe von Schlüssel-Wert-Paaren bereit, um einzelne Eigenschaften des Webtreibers wie Browsername, Browserplattform usw. zu ändern.
- Um Erweiterungen des Chrome-Browsers zu manipulieren, muss die der Erweiterung entsprechende CRX-Datei extrahiert und der Chrome-Optionsklasse hinzugefügt werden
- –incognito und –headless sind vordefinierte Argumente, die von der Chrome-Optionsklasse für die Verwendung des Chrome-Browsers im Inkognito-Modus und Headless-Modus bereitgestellt werden







