El módulo Selpy es tener todos los métodos comunes que se utilizarán en la automatización de la interfaz de usuario funcional en el modelo de objeto de página. Selpy también alimentó a tener una función de instantánea que guardará los datos de la interfaz de usuario en un archivo si es necesario. Esto a su vez reduce los esfuerzos de mantenimiento de datos de prueba.

Agregue esta línea a los requisitos de su aplicación.
selpy==<version>
Y luego ejecutar:
pip3 install -r requirements.txt
O instálelo usted mismo como:
pip3 install selpy
Este módulo está creado para reemplazar los métodos de la biblioteca en el marco Selpy-Python. Esto nos permite compartir los métodos entre diferentes equipos e ignorar por completo el trabajo repetitivo. Para obtener más detalles sobre el modelo de objeto de página para la automatización de la interfaz de usuario funcional, verifique la página de documentación Selpu Python.
Agregue todos los nuevos métodos dentro /selpy/ ruta y agregue Importar la clase dentro del archivo __init__.py en la misma ruta para que la clase recién agregada pueda importarse utilizando este módulo.
Para importar este uso del módulo,
import selpy
Para importar clase específica en este módulo,
from selpy.driver import Driver
El archivo del controlador contiene todas las acciones comunes que ejecutan el controlador. Iniciar el conductor por,
driver = Driver()
El driver mantendrá el objeto Selenium WebDriver.
Para configurar las capacidades del controlador, uno tiene que especificar los detalles en Global_Data.yml en Selpy-Python.
Esta clase es declarar los localizadores de selenio en el modelo de objeto de página. Puedes declarar los localizadores de la siguiente manera
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)
Para usar el método de localización, necesitamos pasar el tipo de localizador y el elemento de localización real. El tipo de localizador debe mencionarse de la siguiente manera para permitir que selpy procese el localizador.
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'
Esta clase es para almacenar las configuraciones de tiempo de ejecución para este módulo. Una especie de memcached o redis para nuestro marco. Los datos de tiempo de ejecución centralizados que necesitan otros módulos están siendo almacenados aquí y recuperados por otros módulos.
Aquí es donde está presente la lógica de características de Snap. Para guardar los datos de la interfaz de usuario en el archivo dinámico, uno tiene que ejecutar las pruebas con,
snap=1 pytest
Pero solo esto no asegurará que los datos se guarden en un archivo dinámico. Uno tiene que escribir su código de automatización de tal manera que sea compatible con la función Snap. Por ejemplo, uno puede buscar el marco Selpy-Python dentro de Tests/amazon.py
Al ejecutar las pruebas en modo normal, pytest los datos dinámicos no se anularán, sino que afirmará los datos presentes en la interfaz de usuario con el archivo de datos dinámicos.
Para que esta función se ejecute sin problemas y para acceder a las variables de manera más suave, uno tiene que configurar los siguientes parámetros en su marco en el método pytest_configure (para que estas variables de ruta se establezcan en iniciar el 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
Asegúrese de haber eliminado los archivos antiguos de su directorio DIST.
Los informes de errores y las solicitudes de extracción son bienvenidas en GitHub en https://github.com/narhnavinash/selpy/. Este proyecto está destinado a ser un espacio seguro y acogedor para la colaboración, y se espera que los contribuyentes se adhieran al Código de Conducta del Pacto de contribuyente.
La gema está disponible como código abierto bajo los términos de la licencia GPL-3.0.
Se espera que todos los que interactúen en las bases de código, rastreadores de problemas, salas de chat y listas de correo del proyecto TEBER sigan el código de conducta.