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
selector
ouelement
, 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
selector
eelement
ao mesmo tempo.Se esta ação for chamada usando
selector
o eventoonChange
será acionado automaticamente.Se esta ação for chamada usando um objeto
element
, o eventoonChange
não será acionado. Você pode disparar o eventoonChange
manualmente 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.