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.
# Adicionando uma imagem que está em um diretório específico ao mapa de imagens.bot.add_image("elemento","/meu_diretório/imagens/element.png")
// Adicionando uma imagem que está em um diretório específico ao mapa de imagens.addImage("elemento","/meu_diretório/imagens/element.png");
// Adicionando uma imagem que está em um diretório específico ao mapa de imagens.desktopBot.addImage("elemento","/meu_diretório/imagens/element.png")
// Adicionando uma imagem que está em um diretório específico ao mapa de imagens.desktopBot.addImage("elemento","/meu_diretório/imagens/element.png")
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.ifnotbot.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.ifbot.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.ifbot.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(awaitdesktopBot.find('primeiroElemento')===null)console.log('Este elemento não foi encontrado')// Imprima se o segundoElemento foi encontrado na tela.if(awaitdesktopBot.find('segundoElemento')!==null)print("Este elemento foi encontrado.")
// Imprima se o primeiroElemento NÃO foi encontrado na tela.if(awaitdesktopBot.find('primeiroElemento')===null)console.log('Este elemento não foi encontrado')// Imprima se o segundoElemento foi encontrado na tela.if(awaitdesktopBot.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.
# Procurando por um elemento que contém apenas texto.ifbot.find_text(label="txt_elemento",matching=0.97,waiting_time=10000):print("Este texto foi encontrado na tela!")
// Procurando por um elemento que contém apenas texto.if(findText("txt_elemento",10000)){System.out.println("Este texto foi encontrado na tela!");}
// Procurando por um elemento que contém apenas textoif(awaitdesktopBot.findText('segundoElemento')!==null)console.log('Este texto foi encontrado na tela!')
// Procurando por um elemento que contém apenas textoif(awaitdesktopBot.findText('segundoElemento')!==null)console.log('Este texto foi encontrado na tela!')
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.elementos=bot.find_all(label="elemento_teste",matching=0.97,waiting_time=10000)# Para cada elemento encontrado, imprima as coordenadas.foreleinelementos:print(ele)
// Procure todas as ocorrências do elemento.List<UIElement>elementos=findAllUntil("elemento_teste",0.97,20000);// Para cada elemento encontrado, imprima as coordenadas.for(UIElementele:elementos){System.out.println(ele.getX());System.out.println(ele.getY());System.out.println(ele.getWidth());System.out.println(ele.getHeight());}
# 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)
// Ainda não implementado.
// Lista com o label dos elementos.constelementos_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.constelementos=awaitdesktopBot.find_multiple(elementos_para_encontrar)console.log(elementos)
// Lista com o label dos elementos.constelementos_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.constelementos:Element[]|null[]=awaitdesktopBot.find_multiple(elementos_para_encontrar)console.log(elementos)
# Obtenha o último elemento encontrado na tela.ultimo_elemento=bot.get_last_element()# Imprimindo as coordenadas do elemento.print(ultimo_elemento)
// Obtenha o último elemento encontrado na tela.UIElementultimoElemento=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());
// Obtenha o último elemento encontrado na tela.constultimoElemento=desktopBot.getLastElement()
// Obtenha o último elemento encontrado na tela.constultimoElemento:Element=desktopBot.getLastElement()
# 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)
// Este método procurará o elemento e retornará suas coordenadas X e Y.Pointele=getCoordinates("<caminho_para_elemento.png>",10000,false);System.out.println(ele);
// Este método procurará o elemento e retornará suas coordenadas X e Y.constcoordsElemento=awaitdesktopBot.getElementCoords('elemento_teste')
// Este método procurará o elemento e retornará suas coordenadas X e Y.constcoordsElemento:object=awaitdesktopBot.getElementCoords('elemento_teste')