Die 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 53.11)
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 53.43: 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 53.44: WebDriver Timeout Kontrolle (Groovy Script) | |
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) | |
Parameter | element | Das WebDriver WebElement. | windowname | Der windowname des Browsers in dem das WebElement angefragt wird. | Rückgabewert |
The zugehörige QF-Test Komponente.
| | WebDriver getDriver(String windowname=None) | |
Parameter | windowname | Der windowname des Browsers in dem die WebDriver Instanz angefragt wird. | Rückgabewert |
Die WebDriver Instanz.
| | WebElement getElement(Object componentOrId) | |
Parameter | componentOrId | Die 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) | |
Parameter | browserType | Der 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. | desiredCapabilities | Die DesiredCapabilities, welche an den WebDriver
weitergereicht werden sollen. | Rückgabewert |
Die WebDriver Instanz.
| |
|
|