## Introduction

Welcome to the Automated UI Test Framework. This library provides a structured, scalable way to write UI tests using Selenium and Pytest, implementing the Page Object Model (POM) pattern.

It acts as a wrapper around the `selenium-ui-test-tool` library to provide a higher-level architecture for your test projects.

Bienvenue sur le Framework de Tests UI Automatisés. Cette bibliothèque fournit une méthode structurée et évolutive pour écrire des tests d'interface utilisateur avec Selenium et Pytest, en utilisant le modèle Page Object Model (POM).

Elle agit comme une surcouche autour de la librairie `selenium-ui-test-tool` pour offrir une architecture de haut niveau à vos projets de test.

## Installation

Install the package via pip:

Installez le paquet via pip :

    pip install Auomated-ui-test-framework

## Getting Started

## Démarrage Rapide

To initialize a new project with the recommended structure, navigate to your desired directory and run:

    automated-ui-framework init

This command automatically scaffolds your project with:

- scenarios/: Directory for your Page Objects (e.g., `login.py`).
- tests/: Directory for your test scripts.
- data/: Directory for test data like credentials.
- conftest.py: Pre-configured fixtures for browser management.

Pour initialiser un nouveau projet avec la structure recommandée, naviguez vers votre dossier cible et lancez :

    automated-ui-framework init

Cette commande génère automatiquement votre projet avec :

- scenarios/ : Dossier pour vos Page Objects (ex: `login.py`).
- tests/ : Dossier pour vos scripts de test.
- data/ : Dossier pour les données de test et identifiants.
- conftest.py : Fixtures pré-configurées pour la gestion du navigateur.

## Creating a Page Object

## Créer un Page Object

All your Page Objects should inherit from the `Base` class provided by the framework. This gives them access to shared utilities and drivers.

Tous vos Page Objects doivent hériter de la classe `Base` fournie par le framework. Cela leur donne accès aux utilitaires partagés et au driver.

    from automated_ui_test_framework.base import Base
    from selenium.webdriver.common.by import By

    class LoginPage(Base):
        def fill_form(self, username, password):
            # The Base class manages the driver instance for you
            # La classe Base gère l'instance du driver pour vous
            self.fill_input(By.ID, "user", username)
            self.fill_input(By.ID, "pass", password)
            self.click_element(By.ID, "submit")

## Running Tests

## Lancer les Tests

Since the framework is built on top of pytest, you can run your tests using standard pytest commands:

    pytest tests/

The `conftest.py` included in your project will handle opening and closing the browser for each test function automatically.

Comme le framework repose sur pytest, vous pouvez lancer vos tests avec les commandes standards :

    pytest tests/

Le fichier `conftest.py` inclus dans votre projet gère automatiquement l'ouverture et la fermeture du navigateur pour chaque fonction de test.