AutomationSy

Install

Start

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

Requirements

É necessário node 14 ou superior instalado

Version

v2.0.1

Config

Headless

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

See how to use:
Config.setHeadless(true);

Maximized

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

Informe um parâmetro obrigatório do tipo booleano

See how to use:
Config.setMaximized(true);

Window size

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

See how to use:
Config.setWindowSize(1024, 768);

Default timeout

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

See how to use:
Config.setDefaultTimeout(5000);

Wait until

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
See how to use:
Config.setWaitUntil('domcontentloaded');

Default navigation timeout

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

See how to use:
Config.setDefaultNavigationTimeout(5000);

Actions

Close

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

This action is asynchronous

See how to use:
await Action.closeBrowser();

Sleep

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

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

This action is asynchronous

See how to use:
await Action.sleep(5000);

Type

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.type('#id', 'texto a digitar');

Focus

Você pode focar um elemento da página

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.focus('input');

Keyboard

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

This action is asynchronous

See how to use:
await Action.keyboard('Enter');

Clear

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

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.clear('.clear');

Click

Você pode clicar em um elemento da página

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.click('/html/body/button');

Go back

Você pode navegar para uma rota anterior

This action is asynchronous

See how to use:
await Action.goBack();

Go forward

Você pode navegar para uma rota a frente

This action is asynchronous

See how to use:
await Action.goForward();

Click position

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

This action is asynchronous

See how to use:
await Action.clickPosition(20 ,40);

Double click

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

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.doubleClick('//*[@id="goToTop"]');

Fill

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.fill('#id', 'texto a digitar');

Long click

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.longClick('#id', 2000);

Select by value

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.selectByValue('#id', 'primeiro');

ou


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

Select by index

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.selectByIndex('#id', 0);

Wait for locator

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

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.waitForLocator('#id');

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

Switch page

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

This action is asynchronous

See how to use:
await Action.switchPage(1);

Quit page

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

This action is asynchronous

See how to use:
await Action.quitPage(1);

Wait for locator disappear

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

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.waitForLocatorDisappear('#id');

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

Drag and drop by position

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
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

Drag and drop by target

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.dragAndDropByTarget('#id', '#alvo');

Scroll

Mova a barra de rolagem do navegador verticalmente

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

This action is asynchronous

See how to use:
await Action.scroll(300);

Set HTML

Escreva tags HTML na página

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

This action is asynchronous

See how to use:
await Action.setHTML('<h1>Olá mundo</h1>');

Remove HTML

Você pode remover elementos HTML da página

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.removeHTML('text=Remover');

Screenshot

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

This action is asynchronous

See how to use:
await Action.screenshot();

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

This action is asynchronous

See how to use:
await Action.pdf();

Auto scroll

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

This action is asynchronous

See how to use:
await Action.autoScroll(500, 1000);

Hover

Você pode passar o mouse por cima do elemento

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Action.hover('#id');

Resources

Is disabled

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.isDisabled('#id');

Is checked

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.isChecked('#id');

Get title

Obtenha o título da página

This action is asynchronous

See how to use:
await Resource.getTitle();

Get url

Obtenha a url atual da página

This action is asynchronous

See how to use:
await Resource.getUrl();

Get by attribute

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.getByAttribute('#id', 'href');

Get all by attribute

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.getAllByAttribute('input', 'value');

Get text

Obtenha um texto contido no elemento da página

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.getText('#id');

Get position x

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

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.getPositionX('#id');

Get position y

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

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.getPositionY('#id');

Get width

Obtenha a largura de um elemento na página

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.getWidth('#id');

Get height

Obtenha a altura de um elemento na página

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.getHeight('#id');

Is visible

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

The page locator is the page elements like id, tagname, class, xpath, etcs...

This action is asynchronous

See how to use:
await Resource.isVisible('#id');