Ações do Chrome
Ações do Chrome são ações para interagir com o navegador da Web Chrome.
Todas as ações do Chrome devem usar a instância do navegador, criada pela ação chrome.open.
Identificando um elemento
As ações do Chrome que interagem com um elemento sempre lhe darão a opção de identificar o elemento selector ou element. Quando usar cada um deles?
element: use quando você já tiver o objeto element retornado de qualquer outra ação.
selector: use quando você não tiver o objeto elemento desejado.
Todas as ações permitirão passar apenas
selectorouelement, mas quando deles deve ser sempre informado.
Usando o selector
Marvin usa o mesmo padrão de seletor que JavaScript, com a seguinte notação:
Classe CSS: para selecionar um elemento pela classe css, deve-se usar . seguido do nome da classe. Exemplo: .menu_class.
ID do elemento: para selecionar um elemento pelo ID, use # seguido pelo ID do elemento. Exemplo: #login.
Nome da tag: para selecionar um elemento pelo nome da tag, basta inserir o nome da tag. Exemplo: tbody
Tag com parâmetro: para selecionar um elemento por tag e parâmetro, use a sintaxe tag[param=value]. Se você quiser usar vários parâmetros, use a sintaxe: tag[param1=value1][param2=value2]
Parâmetro curinga: é possível usar curinga nos parâmetros, usando:
id^=someId: corresponderá a todos os ids começando com someId como someId1, someId-other
id$=someId: corresponderá a todos os ids que terminam com someId como 1someId, other-someId
id*=someId: corresponderá a todos os ids contendo someId como someId1, someId-other, 1someId, other-someId
Ações
chrome.change_select
Altere o valor <select> para o valor fornecido.
Não use
selectoreelementao mesmo tempo.Se esta ação for chamada usando
selectoro eventoonChangeserá acionado automaticamente.Se esta ação for chamada usando um objeto
element, o eventoonChangenão será acionado. Você pode disparar o eventoonChangemanualmente usando a ação chrome.execute_js.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
value - Valor que deve ser definido para o elemento <select>.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
Retornar:
Esta ação não dá retorno
Exceções:
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página.
chrome.click_element
Clique com o mouse no meio do elemento dado.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
clicks (opcional) - número de cliques a serem realizados na posição (padrão=1)
button (opcional) - define qual botão do mouse deve ser usado para múltiplos cliques 'esquerda', 'meio' ou 'direita' (padrão='esquerda').
interval (opcional) - intervalo entre cada clique, para computadores mais lentos, considere definir um valor maior que default (padrão=0 - instantâneo).
timeout (opcional) - timeout para esperar o elemento aparecer (padrão=5 segundos).
Retornar:
x - X posição do meio do componente
y - Y posição do meio do componente
Exceções:
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página.
chrome.close
Fecha a instância do navegador da Web Chrome fornecida
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
Retornar:
Esta ação não dá retorno
chrome.get_tabs
Retorna todas as guias abertas na instância especificada
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
Retornar:
tabs - lista com todos os nomes de guias abertos
chrome.execute_js
Execute uma expressão Javascript na guia atual. Javascript deve ser possível de ser executado em um escopo de página mais alto.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
expression - Expressão Javascript a ser executada.
await_promise (opcional) - define se a expressão aguardará por qualquer promessa, no caso de expressão assíncrona (default=True).
Retornar:
js_result - objeto com todas as informações sobre a execução do Javascript. Mais informações sobre este objeto podem ser encontradas aqui.
chrome.focus
Defina o foco sobre o elemento fornecido.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
Retornar:
Esta ação não dá retorno
Exceções:
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página.
chrome.get_element
Retorna o primeiro elemento encontrado para o nome do seletor fornecido.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
depth (opcional) - define a profundidade (níveis) dos elementos filhos a serem retornados (padrão=1).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
Retornar:
element - objeto de elemento para o selector ou None fornecido se nenhum elemento for encontrado.
chrome.get_element_center
Retorne a posição X e Y do centro do elemento fornecido. Se o seletor foi dado retornará o primeiro elemento encontrado para o seletor dado.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
Retornar:
x - X posição do meio do componente
y - Y posição do meio do componente
chrome.get_element_position
Retorna o X, Y, largura e altura do elemento dado na tela. Se o seletor foi dado retornará o primeiro elemento encontrado para o seletor dado.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
Retornar:
x - Posição esquerda do componente
y - Posição superior do componente
width: largura do componente
height: altura do componente
Exceções:
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página.
InvalidPosition: se o selector ou element fornecido não estiver visível.
chrome.get_elements
Retorna o primeiro elemento encontrado para o nome do seletor fornecido.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
depth (opcional) - define a profundidade (níveis) dos elementos filhos a serem retornados (padrão=1).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
Retornar:
elements - lista de objetos de elemento para o seletor fornecido ou lista vazia se nenhum elemento foi encontrado.
length - número de elementos encontrados
chrome.has_download_in_progress
Verifica se há algum download em andamento na instância do browser e retorna True se houver pelo menos um download em andamento ou False se não houver download em andamento.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
Retornar:
downloads_in_progress - True se houver pelo menos um download em andamento ou False se não houver download em andamento.
chrome.is_element_visible
Verifique se o elemento fornecido está visível ou oculto na tela.
Elementos que são visíveis, mas precisam rolar a tela para serem vistos, são considerados visíveis para esta ação.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
timeout (opcional) - timeout para esperar o elemento aparecer (padrão=5 segundos).
Retornar:
is_visible - True se o elemento estiver visível e False se o elemento ainda estiver oculto após o tempo limite.
Exceções:
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página.
TimeoutException: se o elemento não estiver visível até que o tempo limite seja atingido
chrome.navigate
Altere a URL do navegador fornecido, navegando até ele.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
url - novo URL para definir no navegador.
Retornar:
Esta ação não dá retorno
chrome.open
Cria uma nova instância do navegador da Web Chrome para interagir usando o Marvin.
Parâmetros:
url - URL que o Chrome deve abrir
chrome_path - Caminho para o arquivo chrome.exe, se sua instalação não estiver em um dos caminhos de instalação padrão do Chrome: C:\Program Files\Google\Chrome\Application\chrome.exe, C:\ Arquivos de programas (x86)\Google\Chrome\Application\chrome.exe ou C:\Users\<user name>\AppData\Local\Google\Chrome\Application\chrome.exe
Retornar:
navegador - instância do navegador Chrome a ser usada para interações futuras
chrome.query_selector
Retorna o primeiro elemento encontrado para o nome do seletor fornecido.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
depth (opcional) - define a profundidade (níveis) dos elementos filhos a serem retornados (padrão=1).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
Retornar:
element - objeto de elemento para o selector ou None fornecido se nenhum elemento for encontrado.
Exceções:
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página
chrome.query_selector_all
Retorna o primeiro elemento encontrado para o nome do seletor fornecido.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
depth (opcional) - define a profundidade (níveis) dos elementos filhos a serem retornados (padrão=1).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
Retornar:
elements - lista de objetos de elemento para o seletor fornecido ou lista vazia se nenhum elemento foi encontrado.
length - número de elementos encontrados
Exceções:
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página
chrome.scroll_if_needed
Verifique o elemento fornecido e role a tela se for necessário mostrar o elemento.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
Retornar:
Esta ação não dá retorno
Exceções:
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página.
chrome.select_tab
Selecione uma guia específica da instância do navegador
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
tab_name - nome/título da guia a ser selecionada. Não precisa ser o nome completo da guia, pois essa ação pesquisa uma guia que contém o nome fornecido em qualquer parte de seu título de maneira que não diferencia maiúsculas de minúsculas.
timeout - quanto tempo (em segundos) esta ação irá esperar até que o tab_name seja encontrado. Isso é útil quando uma nova guia é criada dinamicamente, o que às vezes pode ter um pequeno atraso (padrão = 10 segundos).
Retornar:
Esta ação não dá retorno
Exceções:
ChromeTabNotFound: se o tab_name fornecido não corresponder a nenhum nome/título de guia na instância do navegador.
chrome.wait_downloads
Pare a execução até que todos os downloads em andamento terminem.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
timeout (opcional) - define o tempo máximo de espera em segundos até que todos os downloads terminem.
Retornar:
Esta ação não dá retorno
Exceções:
TimeoutException: se o elemento não estiver visível até que o tempo limite seja atingido
chrome.wait_element
Pare a execução até que o elemento fornecido esteja presente na página.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
timeout (opcional) - define o tempo máximo de espera em segundos para esperar até que o elemento esteja presente na página (padrão=30 segundos).
Retornar:
element - objeto de elemento para o selector ou None fornecido se nenhum elemento for encontrado.
Exceções:
TimeoutException: se o elemento não estiver visível até que o tempo limite seja atingido
chrome.wait_element_hide
Parar a execução util, o elemento fornecido está oculto para o usuário.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
timeout (opcional) - define o tempo máximo de espera em segundos para esperar até que o elemento esteja presente na página (padrão=30 segundos).
Retornar:
Esta ação não dá retorno
Exceções:
TimeoutException: se o elemento não estiver visível até que o tempo limite seja atingido
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página
chrome.wait_element_visible
Pare a execução até que o elemento fornecido esteja visível para o usuário.
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
selector (opcional) - identificador do elemento no modo seletor (padrão=Nenhum).
element (opcional) - elemento objeto a ser alterado (padrão=Nenhum).
inside (opcional) - este valor define o objeto do elemento onde o selector deve ser encontrado (default=all document).
iframe_search (opcional) - define se o seletor deve ser encontrado no documento base ou em qualquer documento, mesmo dentro de iframes. Se definido True pesquisará dentro de todos os iframes, e se definido False pesquisará apenas dentro do documento principal (padrão=True).
timeout (opcional) - define o tempo máximo de espera em segundos para esperar até que o elemento esteja presente na página (padrão=30 segundos).
Retorna:
element - objeto de elemento para o selector ou None fornecido se nenhum elemento for encontrado.
Exceções:
TimeoutException: se o elemento não estiver visível até que o tempo limite seja atingido
ElementNotFound: se o selector fornecido não corresponder a nenhum elemento na página
chrome.wait_load
Pare a execução até que a página esteja completamente carregada.
Esta ação não cobre o carregamento JavaScript executado na página. Se a página que você está automatizando usar funções de carregamento JavaScript extensas, considere usar chrome.wait_element ou chrome.wait_element_visible
Parâmetros:
browser - instância do navegador fornecida por chrome.open.
timeout (opcional) - define o tempo máximo de espera em segundos para esperar até que a página seja carregada (padrão=60 segundos).
Retornar:
Esta ação não dá retorno
Exceções:
TimeoutException: se o elemento não estiver visível até que o tempo limite seja atingido
Objetos especiais do Chrome
Algumas ações no Chrome usam ou retornam objetos especiais como Element para armazenar informações complexas.
Aqui vamos explicar todos eles e como usá-lo.
Elemento
Retornado por chrome.query_selector contém mais informações sobre o elemento selecionado.
element.get_text()
Retorna o texto dentro do elemento se o elemento tiver um. Este método apenas retorna o texto diretamente dentro do elemento, não retornando textos de elementos filhos.
Retorna:
Texto dentro do elemento, se houver, ou Nenhum, se não houver texto nesse elemento.
element.get_attribute(attribute_name)
Retorna o texto dentro do elemento se o elemento tiver um. Este método apenas retorna o texto diretamente dentro do elemento, não retornando textos de elementos filhos.
Parâmetros:
attribute_name - nome/chave do atributo a ser retornado.
Retorna:
O valor do atributo fornecido.
resultado do execucte_js
Após executar uma expressão Javascript no navegador, ele retornará um objeto com estas chaves:
type - Tipo do objeto retornado (object, function, undefined, string, number, boolean, symbol, bigint, wasm)
subtype - Subtipo do objeto retornado no caso do tipo ser object ou wasm (array, null, node, regexp, date, map, set, Weakmap, Weakset, iterator, generator, error, proxy, promessa, typedarray, arraybuffer, dataview, i32, i64, f32, f64, v128, externref)
className - Definido para o objeto type, dá o nome da classe (construtor) do objeto.
value - Valor retornado para o tipo informado.