Hier werden zwei Möglichkeiten gezeigt, wie

  1. 1. der Quellcode einer ganzen Seite
  2. 2. oder nur den Quellcode eines Elementes

gespeichert werden kann.

Seitenquellcode

Seitenquellcode zur pageSource-Variablen (Java):

String pageSource = driver.getPageSource();

Element-Quellcode

Element-Quellcode zur elementSource-Variablen (Java):

WebElement element = driver.findElement(By.id("id"));
String elementSource = element.getAttribute("innerHTML");

Installation

ChromeDriver für OSX laden

  • Zunächst benötigen wir die aktuelle ausführbare Version des "ChromDriver"-s. Dieser ist unter ChromeDriver - Downloads zu finden - Neben "Latest Release" ist der Link zur aktuelle Version des ChromeDrivers zu finden.
    Wichtig: Für OSX wird die Datei chromedriver_mac32.zip benötigt: Diesen herunterladen.
  • Anschließend die heruntergeladene Datei chromedriver_mac32.zip entpacken.

Wenn alles ohne Fehler ausgeführt worden ist, dann sollte sich nun im Verzeichniss "Downloads" die Datei chromedriver als "Unix executable"

PATH-Variable

Im nächsten Schritt muss chromdriver in ein Verzeichnis, welches in der PATH-Variablen eingetragen ist.

Prüfen der Pfade

Welche Pfade in $PATH eingetragen sind, kann im Terminal mit echo $PATH überprüft werden.

Zwei Wege zur Lösung

Es gibt zwei Wege, wie der ChromDriver in ein Verzeichnis kommt, welche in der PATH-Variablen eingetragen ist:

  1. Verzeichnis-Pfad des ChromDrivers wird in die Path-Variabel eingetragen.
  2. Der ChromeDriver wird in ein Verzeichnis kopiert, welches bereits in der PATH-Variablen enthalten ist.

Chris Kenst hat einen Beitrag zur Lösung 1. veröffentlicht: Installing ChromeDriver on Mac OSX

Lösung 2: ChromDriver nach "/usr/local/bin"  kopieren

Das Verzeichnis /usr/Local/bin ist ein geeignetes Verzeichnis um den ChromeDriver dort abzulegen.

  1. Prüfen ob /usr/local/bin in $PATH enthalte ist.
  2. in das Downloads Verzeichniss wechseln: cd downloads
  3. nun chromedriver in des Ziel-Vezeichnis /usr/local/bin kopieren: cp chromedriver /usr/local/bin

Fehlermeldung bei fehlendem PATH-Eintrag

Wenn die PATH Variable und das Installationsverzeichnis des ChromDrivers nicht zusammenpassen, dann erscheint folgende Meldung:

"Selenium::WebDriver::Error::WebDriverError: Unable to find the chromedriver executable. Please download the server from http://chromedriver.storage.googleapis.com/index.html and place it somewhere on your PATH. More info at http://code.google.com/p/selenium/wiki/ChromeDriver."

Verweise

  1. Getting started - ChromeDriver - WebDriver for Chrome
  2. Installing ChromeDriver on Mac OSX

Web-Driver

  1. Chrome-Driver Download :

Anleitungen, Beispiele, E-Books

In der Version 0.0.32 wurde der Selenium HtmlUnit-Driver wieder aktiviert.


Hintergrund: Nach der Umstellung auf Selenium 3 ist der HtmlUnit-Driver nicht mehr Bestandteil des Selenium-API Paketes.
Der HtmlUnit-Driver muss seit der Version 3 separat  in die Projekte eingebunden werden.

Die Beschreibungen, wie HtmlUnit-Driver seit Selenium 3 eingebunden werden muss, ist sowohl in der Selenium Doku als auch im Web sehr missverständlich erklärt.
Zum Missverständnis trägt die Versionsnummer des HtmlUnit-Driver bei. Dieser läuft mit der Version 2.*.* während der Firefox-Driver unter 3.*.*.

Mit OKW wird das einfach: Es muss nur das Maven-Paket "Se" eingebenden werde. Den Rest erledigt Maven.

Der HtmlUnit-Driver ist ein Headless-Driver und hat dadurch einige herausragende Vorteile:

  1. Läuft auf Console/Terminal Ebene und benötigt kein Windows oder ein anderes Fenster basierendes System.
  2. Es muss auf dem Zielrechner kein Browser und der zugehörige Driver installiert werden.
  3. Mit dem einbinden de OKW-Selenium Dependency-s ist alle getan damit der HtmlUnit-Driver verwendet werden kann.
  4. Die Ausführung von GUI-Test sind etwa um den Faktor 5 bis 10 schneller als mit dem Chrome- oder Firefox-Driver.
  5. Eignet sich ideal für CI-Werkzeuge wie Maven/Jenkins/Travis

Maven dependency

Die OKW Version 0.0.32 kann via Maven-Repository bezogen werden. Maven-Dependency kann von hier kopiert werden:

Selenium

<!-- https://mvnrepository.com/artifact/de.openkeyword/se -->
<dependency>
    <groupId>de.openkeyword</groupId>
    <artifactId>se</artifactId>
    <version>0.0.32</version>
</dependency>

Log2HTML 

<!-- https://mvnrepository.com/artifact/de.openkeyword/log2html -->
<dependency>
    <groupId>de.openkeyword</groupId>
    <artifactId>log2html</artifactId>
    <version>0.0.32</version>
</dependency>

Kopfzeile