Chrome-Optionen & Gewünschte Fähigkeiten: AdBlocker, Incognito, Headless

Inhaltsverzeichnis:

Anonim

Was ist die Chrome Options-Klasse?

Die Chrome-Optionsklasse wird verwendet, um verschiedene Eigenschaften des Chrome-Treibers zu bearbeiten. Die Chrome-Optionsklasse wird im Allgemeinen in Verbindung mit den gewünschten Funktionen verwendet.

Beispiel:

Das folgende Beispiel zeigt eine Möglichkeit, den Chrome-Browser im maximierten Modus mithilfe der ChromeOptions-Klasse zu öffnen. Wir müssen eine Instanz der ChromeOptions-Klasse an die Initialisierung des Webtreibers übergeben.

ChromeOptions-Optionen = neue ChromeOptions ()options.addArgument ("startmaximiert");ChromeDriver-Treiber = neuer ChromeDriver (Optionen);

Unten 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 kopflosen Modus
  • disable -extensions : Deaktiviert vorhandene Erweiterungen im Chrome-Browser
  • Popup-Blockierung deaktivieren : Deaktiviert Popups, die im Chrome-Browser angezeigt werden
  • make-default-browser: Legt den Chrome-Standardbrowser fest
  • version : Druckt die Chrome-Browserversion
  • Disable-Infobars: Verhindert, dass Chrome die Benachrichtigung "Chrome wird von automatisierter Software gesteuert" anzeigt

In diesem Tutorial lernen Sie

  • Was ist die Chrome Options-Klasse?
  • Gewünschte Fähigkeitsklasse
  • Chrome-Optionen für die Adblocker-Erweiterung
  • Chrome-Optionen für den Inkognito-Modus
  • Chrome-Optionen für Headless Chrome

Gewünschte Fähigkeitsklasse

Die gewünschte Fähigkeitsklasse wird verwendet, um mehrere Eigenschaften des Webtreibers zu ändern. Die Desired Capabilities-Klasse bietet eine Reihe von Schlüssel-Wert-Paaren zum Ändern einzelner Eigenschaften des Webtreibers wie Browsername, Browserplattform usw. Die am häufigsten verwendete Methode der Desired Capabilities-Klasse ist die setCapability-Methode. Gewünschte Funktionen werden am häufigsten mit Selenium Grid verwendet, bei dem derselbe Testfall in verschiedenen Browsern ausgeführt werden muss.

Beispiel:

Das folgende Beispiel zeigt, wie der Chrome-Browser standardmäßig SSL-Zertifikate auf Websites mit der Klasse Desired Capabilities akzeptieren kann.

// Erstellen Sie mit dem Chrome-Treiber ein Objekt der gewünschten FunktionsklasseDesiredCapabilities SSLCertificate = DesiredCapabilities.chrome ();// Setze die vordefinierte Fähigkeit - ACCEPT_SSL_CERTS Wert auf trueSSLCertificate.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true);// Öffnen Sie eine neue Instanz des Chrome-Treibers mit der gewünschten FunktionWebDriver-Treiber = neuer ChromeDriver (SSLCertificate);

Nachfolgend sind die am häufigsten verwendeten vordefinierten Funktionstypen aufgeführt.

Fähigkeitsname 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, über die auf die Website zugegriffen wird
BROWSER_NAME Diese Eigenschaft wird verwendet, um den Browsernamen für eine Webtreiberinstanz festzulegen
AUSFÜHRUNG Diese Eigenschaft wird zum Festlegen der Browserversion verwendet

Chrome-Optionen für die Adblocker-Erweiterung

Die Adblocker-Erweiterung des Chrome-Browsers kann mithilfe der Chrome-Optionen und der gewünschten Funktionen behandelt werden. Im Folgenden finden Sie die Schritte zum Zugriff auf die AdBlocker-Erweiterung im Chrome-Browser mithilfe der Klasse "Gewünschte Funktionen".

Schritt 1) ​​Die AdBlocker-Erweiterung muss im Chrome-Browser installiert sein, bevor die Chrome Options-Klasse verwendet werden kann

Schritt 2) Extrahieren Sie die CRX-Datei, die der AdBlocker-Erweiterung entspricht, über http://crxextractor.com/.

Schritt 3) Übergeben Sie den heruntergeladenen CRX-Dateipfad an die Chrome Options-Klasse

Schritt 4) Instanziieren Sie den Webtreiber mithilfe der gewünschten Funktionsklasse und des gewünschten Chrome-Optionsobjekts

Beispiel:

Das folgende Beispiel zeigt, wie die Werbeblocker-Erweiterung im Chrome-Browser mithilfe der Chrome-Optionen und der Klasse "Gewünschte Funktionen" aktiviert wird.

ChromeOptions-Optionen = neue ChromeOptions ();options.addExtensions (neue Datei ("Pfad zur CRX-Datei"));DesiredCapabilities-Funktionen = neue DesiredCapabilities ();Capabilities.setCapability (ChromeOptions.CAPABILITY, Optionen);ChromeDriver-Treiber = neuer ChromeDriver (Funktionen);

CRX-Datei extrahieren:

Die folgenden Schritte veranschaulichen den Prozess des Extrahierens von CRX-Dateien über Ad Blocker über die Website - http://crxextractor.com/.

Schritt 1) Gehen Sie zu http://crxextractor.com/ und klicken Sie auf die Schaltfläche Start

Schritt 2) Geben Sie die Chrome-Erweiterung - Ad Blocker URL unter das Textfeld ein. Die URL für Adblock im Chrome-Webshop 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 Bezeichnung der Schaltfläche wie unten beschrieben in Get .CRX. Klicken Sie auf die Schaltfläche .CRX abrufen. 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 Options-Klasse zu übergeben

Beispielcode:

  1. Sie sehen Anzeigen unter http://demo.guru99.com/ wie unten

  1. Wenn die AdBlocker-Erweiterung in Chrome aktiviert ist, sollten Anzeigen deaktiviert werden
Paket Adblock;import java.io.File;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import org.openqa.selenium.remote.DesiredCapabilities;öffentliche Klasse AdblockDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");ChromeOptions-Optionen = neue ChromeOptions ();options.addExtensions (neue Datei ("X: //extension_3_40_1_0.crx"));DesiredCapabilities-Funktionen = neue DesiredCapabilities ();Capabilities.setCapability (ChromeOptions.CAPABILITY, Optionen);options.merge (Funktionen);ChromeDriver-Treiber = neuer ChromeDriver (Optionen);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maxim ();//driver.quit ();}}}}

Code Erläuterung:

  1. Zunächst müssen Sie den Pfad zur Datei chromedriver.exe mithilfe der Methode set property festlegen, da Sie Chrome Browser zum Testen verwenden
  2. Sie müssen den Pfad zur CRX-Datei festlegen, um die Erweiterungsmethode hinzuzufügen
  3. Anschließend müssen Sie ein Objekt der gewünschten Funktionsklasse erstellen und an die Webtreiberinstanz übergeben. Ab der Version Selenium 3.8.1 ist die Treiberfunktionsklasse veraltet, und Sie müssen das Funktionsobjekt mit dem Chrome Options-Objekt zusammenführen, bevor Sie dasselbe als Argument an den Chrome Driver-Konstruktor übergeben
  4. Öffnen Sie die URL - http://demo.guru99.com/test/simple_context_menu.html mit aktivierter Ad Blocker-Erweiterung
  5. Maximieren und schließen Sie den Browser

HINWEIS: Wir aktivieren die AdBlocker-Erweiterung im Chrome-Browser über ein Automatisierungsskript, anstatt die Adblocker-Erweiterung im Chrome-Browser manuell zu aktivieren. Mit der CRX-Datei können Sie mithilfe eines Automatisierungsskripts auf die Werbeblocker-Erweiterung zugreifen

Ausgabe:

Der Chrome-Browser wird mit der unten angegebenen AdBlocker-Erweiterung 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 - Inkognito - verwendet wird .

Unten finden Sie den Beispielcode, um dies zu erreichen.

Beispielcode:

Pakettest;import java.io.File;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import org.openqa.selenium.remote.DesiredCapabilities;öffentliche Klasse Incognito {public static void main (String [] args) {// TODO Automatisch generierter MethodenstubSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");ChromeOptions-Optionen = neue ChromeOptions ();options.addArguments ("- inkognito");DesiredCapabilities-Funktionen = neue DesiredCapabilities ();Capabilities.setCapability (ChromeOptions.CAPABILITY, Optionen);options.merge (Funktionen);ChromeDriver-Treiber = neuer ChromeDriver (Optionen);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maxim ();//driver.quit ();}}}}

Code Erläuterung :

  1. Zunächst müssen Sie den Pfad zur Datei chromedriver.exe mithilfe der Methode set property festlegen, da Sie Chrome Browser zum Testen verwenden
  2. Anschließend müssen Sie ein Objekt der Chrome Options-Klasse erstellen und an die Webtreiberinstanz übergeben. Da wir den Chrome-Browser im Inkognito-Modus öffnen möchten, müssen Sie das Argument -incognito an die Chrome Options-Klasse übergeben.
  3. Erstellen Sie als Nächstes ein Objekt der Klasse Desired Capabilities und führen Sie das Klassenobjekt Desired Capabilities mithilfe der Zusammenführungsmethode mit dem Klassenobjekt Chrome Options zusammen
  4. Sie müssen ein Objekt der Chrome Driver-Klasse erstellen und das Chrome Options-Objekt als Argument übergeben
  5. Schließlich müssen wir die URL - http://demo.guru99.com/test/simple_context_menu.html an die driver.get-Methode übergeben
  6. Maximieren und schließen Sie den Browser

Ausgabe:

Das Chrome-Browserfenster wird im Inkognito-Modus wie folgt geöffnet

Chrome-Optionen für Headless Chrome

Im Hintergrund läuft ein Headless-Browser. Sie werden die Browser-GUI oder die darauf ausgeführten Vorgänge nicht sehen.

Chrome-Optionen zum Ausführen des Chrome-Browsers im Headless-Modus können mithilfe der vordefinierten Argumente - Headless - ausgeführt werden .

Beispielcode, um dies zu erreichen, wird unten erwähnt.

Beispiel:

Pakettest;import java.io.File;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import org.openqa.selenium.remote.DesiredCapabilities;öffentliche Klasse HeadlessModeDemo {public static void main (String [] args) {// TODO Automatisch generierter MethodenstubSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");ChromeOptions-Optionen = neue ChromeOptions ();options.addArguments ("- kopflos");DesiredCapabilities-Funktionen = neue DesiredCapabilities ();Capabilities.setCapability (ChromeOptions.CAPABILITY, Optionen);options.merge (Funktionen);ChromeDriver-Treiber = neuer ChromeDriver (Optionen);driver.get ("http://demo.guru99.com/");driver.manage (). window (). maxim ();String title = driver.getTitle ();System.out.println ("Seitentitel: + Titel);driver.quit ();}}}}

Code Erläuterung :

  1. Zunächst müssen Sie den Pfad zur Datei chromedriver.exe mithilfe der Methode set property festlegen, da Sie Chrome Browser zum Testen verwenden
  2. Erstellen Sie als Nächstes ein Objekt der Chrome Options-Klasse 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 Options-Klasse übergeben.
  3. Erstellen Sie ein Objekt der Klasse "Desired Capabilities" und führen Sie das Klassenobjekt "Desired Capabilities" mit dem Klassenobjekt "Chrome Options" mithilfe der Zusammenführungsmethode zusammen
  4. Erstellen Sie ein Objekt der Chrome Driver-Klasse und übergeben Sie das Chrome Options-Objekt als Argument
  5. Schließlich müssen wir die URL - http://demo.guru99.com/ an die driver.get-Methode übergeben
  6. Drucken Sie den Seitentitel und schließen Sie den Browser

Ausgabe

Der Browser ist für den obigen Code nicht sichtbar, da Chrome im Headless-Modus arbeitet. Der Seitentitel wird wie folgt abgerufen und angezeigt.

Zusammenfassung:

  • Die Chrome-Optionsklasse wird verwendet, um verschiedene Eigenschaften des Chrome-Treibers zu bearbeiten
  • Die Klasse "Gewünschte Funktionen" bietet eine Reihe von Schlüssel-Wert-Paaren zum Ändern einzelner Eigenschaften des Webtreibers wie Browsername, Browserplattform usw.
  • Um Erweiterungen des Chrome-Browsers zu bearbeiten, muss die der Erweiterung entsprechende CRX-Datei extrahiert und der Chrome Options-Klasse hinzugefügt werden
  • --incognito und -headless sind vordefinierte Argumente der Chrome Options-Klasse für die Verwendung des Chrome-Browsers im Inkognito-Modus und im Headless-Modus