Le module Selpy est d'avoir toutes les méthodes courantes qui seront utilisées dans l'automatisation de l'interface utilisateur fonctionnelle dans le modèle d'objet page. Selpy a également été alimenté pour avoir une fonction d'instantané qui enregistrera les données de l'interface utilisateur à un fichier si nécessaire. Cela réduit à son tour les efforts de maintenance des données de test.

Ajoutez cette ligne au fichier exigences.txt de votre application:
selpy==<version>
Puis exécuter:
pip3 install -r requirements.txt
Ou installez-le vous-même comme:
pip3 install selpy
Ce module est conçu pour remplacer les méthodes de la bibliothèque dans le cadre Selpy-Python. Cela nous permet de partager les méthodes entre les différentes équipes et d'ignorer complètement le travail répétitif. Pour plus de détails sur le modèle d'objet de page pour l'automatisation de l'interface utilisateur fonctionnelle, vérifiez la page de documentation Selpu Python.
Ajoutez toutes les nouvelles méthodes à l'intérieur /selpy/ chemin et ajoutez d'importer la classe dans le fichier __init__.py dans le même chemin afin que la classe nouvellement ajoutée puisse être importée en utilisant ce module.
Pour importer cette utilisation du module,
import selpy
Pour importer une classe spécifique dans cette utilisation du module,
from selpy.driver import Driver
Le fichier du pilote contient toutes les actions courantes exécutées par le pilote. Initier le conducteur par,
driver = Driver()
Le driver tiendra l'objet Selenium WebDriver.
Pour configurer les capacités du pilote, il faut spécifier les détails dans Global_data.yml dans Selpy-Python.
Cette classe doit déclarer les localisateurs de sélénium dans le modèle d'objet Page. Vous pouvez déclarer les localisateurs comme suit,
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)
Pour utiliser la méthode de localisation, nous devons passer le type de localisateur et l'élément de localisateur réel. Le type de localisateur doit être mentionné de la manière suivante pour permettre selpy de traiter le localisateur.
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'
Cette classe doit stocker les configurations de temps d'exécution pour ce module. Une sorte de Memcached ou Redis pour notre cadre. Les données de temps d'exécution centralisées qui sont nécessaires par d'autres modules sont stockées ici et récupérées par d'autres modules.
C'est là que la logique des fonctionnalités SNAP est présente. Afin de enregistrer les données de l'interface utilisateur dans le fichier dynamique, il faut exécuter les tests,
snap=1 pytest
Mais, seul cela ne garantira pas que les données soient enregistrées dans le fichier dynamique. Il faut scripter leur code d'automatisation de telle manière que la fonction SNAP soit prise en charge. Par exemple, on peut consulter le cadre Selpy-Python à l'intérieur Tests/amazon.py
Lors de l'exécution des tests en mode normal, pytest les données dynamiques ne seront pas remplacées, elles affirmeront les données présentes dans l'interface utilisateur avec le fichier de données dynamique.
Pour que cette fonctionnalité fonctionne en douceur et pour accéder aux variables de manière plus fluide, il faut configurer les paramètres suivants dans leur cadre dans la méthode pytest_configure (afin que ces variables de chemin soient définies sur l'initiation du PyTest).
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
Assurez-vous que vous avez supprimé les anciens fichiers de votre répertoire DIST.
Les rapports de bogues et les demandes de traction sont les bienvenus sur github à https://github.com/nareshnavinash/selpy/. Ce projet est destiné à être un espace sûr et accueillant pour la collaboration, et les contributeurs devraient adhérer au Code de conduite de l'alliance des contributeurs.
Le GEM est disponible en open source en vertu des termes de la licence GPL-3.0.
Tout le monde interagit dans les bases de code, les trackers des problèmes, les salles de chat et les listes de diffusion du TEBER devrait suivre le code de conduite.