Das SELPY -Modul besteht darin, alle gemeinsamen Methoden zu haben, die in der funktionalen UI -Automatisierung im Seitenobjektmodell verwendet werden. SELPY hat auch eine Snapshot -Funktion mit Strom versorgt, die die Daten bei Bedarf von der Benutzeroberfläche in eine Datei speichert. Dies reduziert wiederum die Aufrechterhaltung der Testdaten.

Fügen Sie diese Zeile der Anforderungen Ihrer Anwendung hinzu. TXT -Datei:
selpy==<version>
Und dann ausführen:
pip3 install -r requirements.txt
Oder installieren Sie es selbst als:
pip3 install selpy
Dieses Modul ist erstellt, um die Bibliotheksmethoden im Selpy-Python-Framework zu ersetzen. Dies ermöglicht es uns, die Methoden unter verschiedenen Teams zu teilen und die sich wiederholende Arbeit vollständig zu ignorieren. Weitere Informationen zum Seitenobjektmodell für die funktionale UI -Automatisierung überprüfen Sie die Seite SELPU Python -Dokumentation.
Fügen Sie alle neuen Methoden in /selpy/ Pfad hinzu und importieren Sie die Klasse in __init__.py -Datei im selben Pfad, damit die neu hinzugefügte Klasse mit diesem Modul importiert werden kann.
Um diese Modulverwendung zu importieren,
import selpy
Um eine bestimmte Klasse in dieser Modul Verwendung zu importieren,
from selpy.driver import Driver
Die Treiberdatei enthält alle gängigen Aktionen, die vom Treiber ausgeführt werden. Den Fahrer durch initiieren,
driver = Driver()
Der driver hält das Selenium WebDriver -Objekt.
Für die Konfiguration der Treiberfunktionen muss man die Details in der global_data.yml in Selpy-Python angeben.
Diese Klasse soll die Seleniumlokatoren im Seitenobjektmodell deklarieren. Sie können die Locators wie folgt deklarieren,
class AmazonHomePageLocator:
# Static locators
amazon_logo = Locator("css selector", "div#nav-logo a[aria-label='Amazon']")
amazon_search_categories = Locator("css selector", "div.nav-search-scope select.nav-search-dropdown")
def __init__(self):
print("Locators for Amazon home page")
# Dynamic locators
@staticmethod
def amazon_search_category_list(string):
return Locator("xpath", "//select[contains(@class,'nav-search-dropdown')]//option[text()='%s']" % string)
Um die Locator -Methode zu verwenden, müssen wir den Art des Locators und das tatsächliche Locator -Element übergeben. Die Art des Locators muss in folgenden Weise erwähnt werden, damit selpy den Locator verarbeiten kann.
CSS - 'css selector'
XPATH - 'xpath'
ID - 'id'
NAME - 'name'
LINK TEXT - 'link text'
PARTIAL LINK TEXT - 'partial link text'
TAG NAME - 'tag name'
CLASS NAME - 'class name'
Diese Klasse soll die Laufzeitkonfigurationen für dieses Modul speichern. Art von Memcached oder Redis für unseren Rahmen. Zentralisierte Laufzeitdaten, die von anderen Modulen benötigt werden, werden hier gespeichert und von anderen Modulen zurückgezogen.
Hier ist die tatsächliche Snap -Feature -Logik vorhanden. Um die UI -Daten in der dynamischen Datei zu speichern, muss man die Tests ausführen.
snap=1 pytest
Dies wird jedoch nicht sicherstellen, dass die Daten in dynamische Datei gespeichert werden. Man muss ihren Automatisierungscode so einstellen, dass die Snap -Funktion unterstützt wird. Zum Beispiel kann man in Selpy-Python-Framework innerhalb von Tests/amazon.py einschauen
Nach dem Ausführen der Tests im normalen pytest werden die dynamischen Daten nicht überschrieben, sondern die in der UI vorhandenen Daten mit der dynamischen Datendatei.
Um diese Funktion reibungslos zu laufen und auf reibungslosere Weise auf die Variablen zuzugreifen, muss man die folgenden Parameter in ihrem Framework in der pytest_configure -Methode konfigurieren (so dass diese Pfadvariablen beim Initiieren des PyTest festgelegt werden).
from selpy.store import Store
def pytest_configure(config):
# Configuring the selpy with data path location
Store.global_data_path = os.path.dirname(os.path.abspath(__file__)).replace("/Tests", "") + '/Data/GlobalData/global_data.yml'
Store.static_data_path = os.path.dirname(os.path.abspath(__file__)).replace("/Tests", "") + '/Data/TestData/'
Store.dynamic_data_path = os.path.dirname(os.path.abspath(__file__)).replace("/Tests", "") + '/Data/DynamicData/'
python3 -m pip install --user --upgrade setuptools wheel
python3 setup.py sdist bdist_wheel
python3 -m twine upload -u <username> -p <password> --repository-url https://upload.pypi.org/legacy/ dist/* --verbose
Stellen Sie sicher, dass Sie die alten Dateien aus Ihrem DIST -Verzeichnis gelöscht haben.
Fehlerberichte und Pull -Anfragen sind auf Github unter https://github.com/nareshnavinash/selpy/ willkommen. Dieses Projekt soll ein sicherer, einladender Raum für die Zusammenarbeit sein, und die Mitwirkenden sollen sich an den Verhaltenskodex für den Mitwirkenden halten.
Das Edelstein ist unter den Bestimmungen der GPL-3.0-Lizenz als Open Source erhältlich.
Jeder, der in den Codebasen, Ausgabeträgern, Chatrooms und Mailinglisten des Teber -Projekts interagiert, wird voraussichtlich dem Verhaltenskodex folgen.