Visão Computacional¶
Usando os métodos abaixo, você poderá usar a visão computacional para interagir com os elementos que aparecem na tela.
Adicionar Imagem¶
Por padrão, as imagens dos elementos são obtidas da pasta resources
do projeto e adicionadas ao mapa de imagens.
No entanto, é possível adicionar uma imagem que está em outro diretório no mapa da imagens e, assim, acessá-la normalmente através do label definido.
Observação
Esta operação não é necessária para imagens que já estão na pasta resources
padrão do projeto.
Obter imagem do mapa¶
Você pode obter uma imagem específica do mapa de imagens usando um label definido.
Encontrando elementos¶
Usando os métodos de 'find', é possível procurar um elemento na tela usando a visão computacional até que ocorra um tempo limite. Você pode usar o retorno do método de busca para verificar se um elemento foi encontrado ou não e com base nisso realizar o tratamento necessário.
# Imprima se o primeiro_elemento NÃO foi encontrado na tela.
if not bot.find(label="primeiro_elemento", matching=0.97, waiting_time=10000):
print("Este elemento não foi encontrado.")
# Imprima se o segundo_elemento foi encontrado na tela.
if bot.find(label="segundo_elemento", matching=0.97, waiting_time=10000):
print("Este elemento foi encontrado.")
# Usar find_until terá o mesmo efeito que o uso do find.
if bot.find_until(label="outro_elemento", matching=0.97, waiting_time=10000):
print("Encontrado!")
// Imprima se o primeiroElemento NÃO foi encontrado na tela.
if(!find("primeiroElemento", 0.97, 10000)) {
System.out.println("Este elemento não foi encontrado");
}
// Imprima se o segundoElemento foi encontrado na tela.
if(find("segundoElemento", 0.97, 10000)) {
System.out.println("Este elemento foi encontrado");
}
// Imprima se o primeiroElemento NÃO foi encontrado na tela.
if (await desktopBot.find('primeiroElemento') === null)
console.log('Este elemento não foi encontrado')
// Imprima se o segundoElemento foi encontrado na tela.
if (await desktopBot.find('segundoElemento') !== null)
print("Este elemento foi encontrado.")
// Imprima se o primeiroElemento NÃO foi encontrado na tela.
if (await desktopBot.find('primeiroElemento') === null)
console.log('Este elemento não foi encontrado')
// Imprima se o segundoElemento foi encontrado na tela.
if (await desktopBot.find('segundoElemento') !== null)
print("Este elemento foi encontrado")
O método find
acima é o mais comum de usar e basicamente funcionará para todos os casos em que precisamos procurar um elemento na tela.
No entanto, é possível usar métodos de busca para situações específicas.
Encontrar elemento de texto¶
Encontrar todos os elementos¶
Além de realizar operações com elementos únicos, também é possível procurar por vários elementos diferentes ou todas as ocorrências de um mesmo elemento.
// Procure todas as ocorrências do elemento.
List<UIElement> elementos = findAllUntil("elemento_teste", 0.97, 20000);
// Para cada elemento encontrado, imprima as coordenadas.
for(UIElement ele : elementos) {
System.out.println(ele.getX());
System.out.println(ele.getY());
System.out.println(ele.getWidth());
System.out.println(ele.getHeight());
}
Encontrar múltiplos elementos¶
# Lista com o label dos elementos.
elementos_para_encontrar = ["ele1", "ele2", "ele3", "ele4"]
# Ao procurar todos os elementos será retornado um dicionário com o label e as coordenadas de cada um.
elementos = bot.find_multiple(labels=elementos_para_encontrar, matching=0.97, waiting_time=20000)
print(elementos)
// Lista com o label dos elementos.
const elementos_para_encontrar = ["ele1", "ele2", "ele3", "ele4"]
// Ao procurar todos os elementos será retornado um dicionário com o label e as coordenadas de cada um.
const elementos = await desktopBot.find_multiple(elementos_para_encontrar)
console.log(elementos)
// Lista com o label dos elementos.
const elementos_para_encontrar: string[] = ["ele1", "ele2", "ele3", "ele4"]
// Ao procurar todos os elementos será retornado um dicionário com o label e as coordenadas de cada um.
const elementos: Element[] | null[] = await desktopBot.find_multiple(elementos_para_encontrar)
console.log(elementos)
Obtendo elementos¶
Você pode obter informações sobre o último elemento encontrado e também as coordenadas de um elemento específico.
Obter último elemento¶
// Obtenha o último elemento encontrado na tela.
UIElement ultimoElemento = getLastElement();
// Imprimindo as coordenadas do elemento.
System.out.println(ultimoElemento.getX());
System.out.println(ultimoElemento.getY());
System.out.println(ultimoElemento.getWidth());
System.out.println(ultimoElemento.getHeight());
Obter coordenadas do elemento¶
# Este método procurará o elemento e retornará suas coordenadas X e Y.
ele = bot.get_element_coords(label="elemento_teste", matching=0.97)
print(ele)
# Este método procurará o elemento e retornará suas coordenadas X e Y centralizadas.
elemento_centralizado = bot.get_element_coords_centered(label="elemento_teste", matching=0.97)
print(elemento_centralizado)