O módulo Selpy é ter todos os métodos comuns que serão usados na automação funcional da interface do usuário no modelo de objeto de página. O Selpy também foi alimentado para ter um recurso de instantâneo que salvará os dados da interface do usuário em um arquivo, se necessário. Isso, por sua vez, reduz os esforços de manutenção de dados de teste.

Adicione esta linha aos requisitos do seu aplicativo.txt arquivo:
selpy==<version>
E depois execute:
pip3 install -r requirements.txt
Ou instale você mesmo como:
pip3 install selpy
Este módulo foi criado para substituir os métodos da biblioteca na estrutura Selpy-Python. Isso nos permite compartilhar os métodos entre diferentes equipes e ignorar completamente o trabalho repetitivo. Para obter mais detalhes sobre o modelo de objeto de página para automação de interface do usuário funcional, verifique a página de documentação do Selpu Python.
Adicione todos os novos métodos internos /selpy/ caminho e adicione importar a classe dentro do arquivo __init__.py no mesmo caminho, para que a classe recém -adicionada possa ser importada usando este módulo.
Para importar este módulo de uso,
import selpy
Para importar classe específica neste uso do módulo,
from selpy.driver import Driver
O arquivo de driver detém todas as ações comuns que são executadas pelo driver. Iniciar o motorista por,
driver = Driver()
O driver manterá o objeto Selenium Webdriver.
Para configurar os recursos do driver, é preciso especificar os detalhes no global_data.yml no Selpy-python.
Esta classe deve declarar os localizadores de selênio no modelo de objeto de página. Você pode declarar os localizadores da seguinte maneira,
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 o método do localizador, precisamos passar o tipo de localizador e o elemento do localizador real. O tipo de localizador deve ser mencionado da seguinte maneira para permitir que selpy processe o 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 classe deve armazenar as configurações de tempo de execução para este módulo. Uma espécie de memcached ou redis para nossa estrutura. Os dados centralizados de tempo de execução necessários para outros módulos estão sendo armazenados aqui e recuperados por outros módulos.
É aqui que está presente a lógica real do recurso Snap. Para salvar os dados da interface do usuário no arquivo dinâmico, é preciso executar os testes com,
snap=1 pytest
Mas apenas isso não garantirá que os dados estejam sendo salvos no arquivo dinâmico. É preciso script seu código de automação de tal maneira que o recurso de encaixe é suportado. Por exemplo, pode-se procurar a estrutura Selpy-Python dentro de Tests/amazon.py
Ao executar os testes no modo normal pytest os dados dinâmicos não serão substituídos, em vez de afirmar que os dados presentes na UI com o arquivo de dados dinâmicos.
Para colocar esse recurso funcionando sem problemas e para acessar as variáveis de maneira mais suave, é preciso configurar os seguintes parâmetros em sua estrutura no método pytest_configure (para que essas variáveis de caminho sejam definidas no início do 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
Verifique se você excluiu os arquivos antigos do seu diretório dist.
Relatórios de bug e solicitações de tração são bem -vindos no github em https://github.com/nareshnavinash/selpy/. Este projeto deve ser um espaço seguro e acolhedor para a colaboração, e espera -se que os colaboradores sigam o Código de Conduta do Covenant colaborador.
A GEM está disponível como código aberto nos termos da licença GPL-3.0.
Todos interagindo nas bases de código do Teber Project, rastreadores de emissão, salas de bate -papo e listas de discussão devem seguir o código de conduta.