AutomationSy

Instalação

Início

Faça a Instalação do AutomationSy via NPM package

Execute no seu terminal

npm i automationsy

A partir da versão 2 adiante as importações são diferentes

import { Action, Config, Resource } from 'automationsy';
  • Action - Ações do navegador com a página
  • Config - Configure informações da automação do navegador
  • Resource - Obtenha os recursos de elementos da página

Requerimentos

É necessário node 14 ou superior instalado

Versão

v2.0.1

Configuração

Modo sem cabeça

Você pode ativar o modo sem cabeça para que o navegador não seja visível em tela, por padrão o valor é falso.

Informe um parâmetro obrigatório do tipo booleano

Veja como usar:
Config.setHeadless(true);

Defina a tela ao máximo

Você pode maximizar o tamanho da tela do navegador, por padrão o valor é falso.

Informe um parâmetro obrigatório do tipo booleano

Veja como usar:
Config.setMaximized(true);

Defina a altura e largura da janela

Você pode alterar o tamanho da largura e altura da janela do navegador, por padrão a largura é 800 e altura 600

Informe dois parâmetros obrigatórios, o primeiro é a largura e o segundo é a altura

Veja como usar:
Config.setWindowSize(1024, 768);

Defina o tempo de espera das ações

Você pode definir o tempo de espera de cada ação, por padrão é 0, infinitamente.

Informe um parâmetro obrigatório, o valor deve ser em milissegundos

Veja como usar:
Config.setDefaultTimeout(5000);

Espere até

Você pode definir o tipo para a espera da navegação de um site, o tempo que a conexão do navegador finalizou após carregar os dados, por padrão o tipo é load

Informe um parâmetro obrigatório, os tipos aceitos são: load, domcontentloaded, networkidle0 e networkidle2

  • load - considera a navegação encerrada quando tudo estiver carregado
  • domcontentloaded - considera a navegação fechada quando apenas os elementos da página foram carregados
  • networkidle0 - considera a navegação encerrada quando não houver mais de 0 conexões de rede por pelo menos 500ms
  • networkidle2 - considera a navegação encerrada quando não há mais de 2 conexões de rede por pelo menos 500ms
Veja como usar:
Config.setWaitUntil('domcontentloaded');

Defina o tempo de espera da navegação

Você pode definir o tempo de espera da navegação, por padrão é 0, infinitamente.

Informe um parâmetro obrigatório, o valor deve ser em milissegundos

Veja como usar:
Config.setDefaultNavigationTimeout(5000);

Ações

Fechar

Você pode fechar e finalizar as ações do navegador

Está ação é assíncrona

Veja como usar:
await Action.closeBrowser();

Atrasar

Você pode atrasar as ações definindo um tempo em milissegundos

Informe um parâmetro obrigatório, o valor deve ser em milissegundos

Está ação é assíncrona

Veja como usar:
await Action.sleep(5000);

Digitar

Você pode digitar um texto em um campo de formulário

Informe dois parâmetros obrigatórios, o primeiro é o localizador da página e o segundo é o texto a digitar

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.type('#id', 'texto a digitar');

Foco

Você pode focar um elemento da página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.focus('input');

Teclado

Você pode pressionar uma tecla do teclado na página

Informe um parâmetro obrigatório, a tecla do teclado

Exemplo de teclas: Tab, Enter

Está ação é assíncrona

Veja como usar:
await Action.keyboard('Enter');

Limpar

Você pode limpar um campo de um elemento da página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.clear('.clear');

Clicar

Você pode clicar em um elemento da página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.click('/html/body/button');

Voltar

Você pode navegar para uma rota anterior

Está ação é assíncrona

Veja como usar:
await Action.goBack();

Vá em frente

Você pode navegar para uma rota a frente

Está ação é assíncrona

Veja como usar:
await Action.goForward();

Clique na posição

Você pode clicar em uma posição da página

Informe dois parâmetros inteiros obrigatórios, o primeiro é sua posição x, o segundo é a posição y

Os valores da posição são em pixel

Está ação é assíncrona

Veja como usar:
await Action.clickPosition(20 ,40);

Duplo clique

Você pode usar o clique duplo em um elemento da página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.doubleClick('//*[@id="goToTop"]');

Preencher

Diferente do Digitar, você pode preencher um texto em um campo de formulário rapidamente

Informe dois parâmetros obrigatórios, o primeiro é o localizador da página e o segundo é o texto a digitar

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.fill('#id', 'texto a digitar');

Clique longo

Você pode usar o clique longo em um elemento da página

Informe dois parâmetros obrigatórios, o primeiro é o localizador da página, o segundo é o tempo de espera em milissegundos

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.longClick('#id', 2000);

Selecione por valor

Você pode selecione um dropdown pelo valor

Informe dois parâmetros obrigatórios, o primeiro é o localizador da página, o segundo é uma lista para cada valor do dropdown

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.selectByValue('#id', 'primeiro');

ou


await Action.selectByValue('#id', 'primeiro', 'segundo');

Selecione por índice

Você pode selecione um dropdown pelo índice

Informe dois parâmetros obrigatórios, o primeiro é o localizador da página, o segundo é um número inteiro ordenado pelo seu índice na lista do dropdown

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.selectByIndex('#id', 0);

Espere pelo localizador

Você pode aguardar até que um elemento na página apareça

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.waitForLocator('#id');

Para definir o tempo da espera utilize o Defina o tempo de espera das ações

Mudar de página

Você pode alternar entre as páginas abertas no navegador

Informe um parâmetro obrigatório, o índice da página

O índice da página é definindo pela ordem das abas abertas no navegador

Está ação é assíncrona

Veja como usar:
await Action.switchPage(1);

Saia da página

Você pode sair das páginas abertas no navegador

Informe um parâmetro obrigatório, o índice da página

O índice da página é definindo pela ordem das abas abertas no navegador

Está ação é assíncrona

Veja como usar:
await Action.quitPage(1);

Espere que o localizador desapareça

Você pode aguardar até que um elemento na página desapareça

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.waitForLocatorDisappear('#id');

Para definir o tempo da espera utilize o Defina o tempo de espera das ações

Arrastar e soltar pela posição

Você pode arrastar um elemento até uma posição da página

Informe três parâmetros obrigatórios, o primeiro é o localizador da página, o segundo é posição x da página, o terceiro é a posição y da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.dragAndDropByPosition('#id', 20 , 40);

Você pode obter a posição de outro elemento da página usando o Obter posição x e Obter posição y

Arrastar e soltar no alvo

Você pode arrastar um elemento até a outro elemento na página

Informe dois parâmetros obrigatórios, o primeiro é o localizador da página, o segundo é o localizador do alvo na página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.dragAndDropByTarget('#id', '#alvo');

Rolagem

Mova a barra de rolagem do navegador verticalmente

Informe um parâmetro obrigatório, a distância em pixels

Está ação é assíncrona

Veja como usar:
await Action.scroll(300);

Definir HTML

Escreva tags HTML na página

Informe um parâmetro obrigatório, marcação HTML

Está ação é assíncrona

Veja como usar:
await Action.setHTML('<h1>Olá mundo</h1>');

Remover HTML

Você pode remover elementos HTML da página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.removeHTML('text=Remover');

Captura de tela

Você pode tirar um print ou captura de tela do navegador no exato momentos dos testes

Por padrão a pasta de captura de telas é screenshots localizada na pasta raiz do projeto inicializado pelo usuário

Está ação é assíncrona

Veja como usar:
await Action.screenshot();

Criar PDF

Você pode criar um PDF do HTML da página navegada no exato momentos dos testes

Por padrão a pasta de criação de PDF é pdf localizada na pasta raiz do projeto inicializado pelo usuário

Está ação é assíncrona

Veja como usar:
await Action.pdf();

Rolagem infinita

Mova a barra de rolagem do navegador verticalmente infinitamente

Informe dois parâmetros não obrigatórios, o primeiro é a distância em pixels, o segundo é o atraso em milissegundos até que a rolagem chega ao final da página, por padrão os valores da distância é 100 e o atraso é 100

Está ação pode ser usado em casos em que haja paginação infinita no final da página

Está ação é assíncrona

Veja como usar:
await Action.autoScroll(500, 1000);

Mouse flutuante

Você pode passar o mouse por cima do elemento

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Action.hover('#id');

Recursos

Obter habilitado / desabilitado

Obtenha um valor booleano se o elemento da página é desabilitado ou não

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.isDisabled('#id');

Obter marcado / desmarcado

Obtenha um valor booleano se o elemento da página é marcado ou não

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.isChecked('#id');

Obter título

Obtenha o título da página

Está ação é assíncrona

Veja como usar:
await Resource.getTitle();

Obter URL

Obtenha a url atual da página

Está ação é assíncrona

Veja como usar:
await Resource.getUrl();

Obter atributo

Obtenha o atributo de um elemento da página

Informe dois parâmetros obrigatórios, o primeiro é o localizador da página, o segundo é o atributo desejado do localizador

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.getByAttribute('#id', 'href');

Obter todos por atributo

Obtenha uma lista de atributo por cada elemento duplicado na página

Informe dois parâmetros obrigatórios, o primeiro é o localizador da página, o segundo é o atributo desejado do localizador

Lembrando que o localizador pode ser duplicado

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.getAllByAttribute('input', 'value');

Obter texto

Obtenha um texto contido no elemento da página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.getText('#id');

Obter posição x

Obtenha a posição x de um elemento na página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.getPositionX('#id');

Obter posição y

Obtenha a posição y de um elemento na página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.getPositionY('#id');

Obter largura

Obtenha a largura de um elemento na página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.getWidth('#id');

Obter altura

Obtenha a altura de um elemento na página

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.getHeight('#id');

Obter visível / invisível

Obtenha um valor booleano se o elemento da página é visível ou não

Informe um parâmetro obrigatório, o localizador da página

O localizador da página são os elementos da página como id, tagname, classe, xpath, etcs...

Está ação é assíncrona

Veja como usar:
await Resource.isVisible('#id');