4.1+54.11 WebDriverConnection SUT API
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 54.10) 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()
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()
54.11.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.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||