Handbuch

4.1+45.2
WebDriverConnection SUT API

Das WebDriverConnection SUT API stellt Klassen und Interfaces bereit, um die Selenium WebDriver Java API auch innerhalb von 'SUT Skripte' benutzbar zu machen. Mit dieser Art Bridge ist es möglich, bestehende Selenium WebDriver Skripte innerhalb eines 'SUT Skript' Knotens von QF-Test zu verwenden. Darüber hinaus kann sogar die Pseudo DOM-API (Abschnitt 45.1) mit Selenium WebDriver Skripten in Kombination verwendet werden.

HinweisDiese API kann nur verwendet werden, wenn der Browser über den Verbindungsweg "WebDriver" angebunden ist. Aufrufe auf dem zurückgegebenen WebDriver-Objekt werden automatisch synchronisiert und mit einem Timeout versehen.

from webdriver import WebDriverConnection
from org.openqa.selenium import By

wdc = WebDriverConnection(rc)
driver = wdc.getDriver()
# driver ist nun ein Objekt vom Typ org.openqa.selenium.WebDriver

element = driver.findElement(By.cssSelector(".myClass"))
# element ist nun vom Typ org.openqa.selenium.WebElement

# Auf dem Element können direkt die WebDriver Methoden aufgerufen werden
element.click()

# Objekte vom Typ WebElement können auf Objekte
# der QF-Test Pseudo DOM-API abgebildet werden
node = wdc.getComponent(element)

# Und dann einer im Komponenten-Baum definierten Komponente zugewiesen werden
rc.overrideElement("Your-QF-Test-Id",node)

# Ebenfalls kann eine QF-Test Komponente auf ein WebElement abgebildet werden
node = rc.getComponent("QF-Test-Id-Of-Some-Textfield")
element = wdc.getElement(node)

# und dann damit interagiert:
element.clear()
Beispiel 45.1:  WebDriver Verwendung in einem Jython SUT Script

HinweisDas WebDriver-Objekt ist um Methoden zur Kontrolle des automatischen Timeouts erweitert.

import de.qfs.WebDriverConnection

def wdc = new WebDriverConnection(rc)
def driver = wdc.getDriver()

println sprintf("Current timeout: %d ms",driver.getCallTimeout())

driver.setCallTimeout(30000) # 30 sec
driver.get("http://www.slowpage.com") # Langsame WebDriver Aktion
driver.resetCallTimeout()
Beispiel 45.2:  WebDriver Timeout Kontrolle (Groovy Script)
45.2.1
Die WebDriverConnection Klasse

Es folgt eine alphabetische Aufstellung aller Methoden der WebDriverConnection Klasse. Die verwendete Syntax ist ein Gemisch aus Java und Python. Python unterstützt zwar selbst keine statische Typisierung, die Parameter werden jedoch an Java weitergereicht, so dass falsche Typen Exceptions auslösen können. Folgt einem Parameter ein '=' Zeichen und ein Wert, ist dies der Defaultwert des Parameters und eine Angabe beim Aufruf ist optional.

 
 
Object getComponent(WebElement element, String windowname=None)
Gibt die QF-Test Komponente für das übergebene WebDriver WebElement zurück. Diese Komponente kann dann mit den anderen QF-Test API's genutzt werden.(z.B.: die Pseudo DOM-API aus Abschnitt 45.1)
Parameter
elementDas WebDriver WebElement.
windownameDer windowname des Browsers in dem das WebElement angefragt wird.
Rückgabewert The zugehörige QF-Test Komponente.
 
WebDriver getDriver(String windowname=None)
Gibt die WebDriver Instanz zurück welche genutzt wird um mit dem Browser im WebDriver mode zu interagieren. Erfordert, dass zuvor eine Webseite mittels eines 'Web-Engine starten' Knotens geöffnet wurde.
Parameter
windownameDer windowname des Browsers in dem die WebDriver Instanz angefragt wird.
Rückgabewert Die WebDriver Instanz.
 
WebElement getElement(Object componentOrId)
Gibt das WebDriver WebElement für die übergebene QF-Test Komponente oder QF-Test ID der Komponente zurück.
Parameter
componentOrIdDie QF-Test Komponente oder die QF-Test ID der Komponente.
Rückgabewert Das WebDriver WebElement Objekt der QF-Test Komponente.
 
WebDriver getUnmanagedDriver(String browserType=None, DesiredCapabilities desiredCapabilities=None)
Gibt eine WebDriver Instanz mit dem angegebenen Browser-Typ zurück. So lange noch keine Webseite mittels eines 'Web-Engine starten' Knotens geöffnet wurde wird die WebDriver-Instanz nicht von QF-Test überwacht, die damit geöffneten Webseiten und Komponenten werden also nicht direkt von QF-Test erkannt. Eine Interaktion kann dann nur mit der eingebetten Selenium-API erfolgen, und Checks müssen via rc.check und rc.checkEqual erfolgen (siehe Abschnitt 12.1)
Parameter
browserTypeDer Typ des Browsers, mit dem getestet werden soll (siehe 'Art des Browsers'). Ist der Typ leer oder nicht gesetzt wird zunächst die browserName Capability der desiredCapabilities ausgewertet, und zuletzt wird der Wert des 'Art des Browsers' Attributs im 'Web-Engine starten' Knoten, mit dem das SUT gestartet wurde.
desiredCapabilitiesDie DesiredCapabilities, welche an den WebDriver weitergereicht werden sollen.
Rückgabewert Die WebDriver Instanz.