cancel
Showing results for 
Search instead for 
Did you mean: 

Erro no activate application - file input chrome

JulianaFigueire
Level 3
Olá pessoal,

Estou com um problema ao tentar anexar um arquivo que se encontra na pasta de documentos do windows, inicialmente tentei usar os spy's no modo UI, mas acabou ficando muito instável. Por conta disso, criei uma region na janela de abrir arquivo do chrome (imagem abaixo) usando um objeto separado para isso e usando Global Send Keys para enviar o caminho do arquivo e também o nome do mesmo. O processo funciona corretamente em dois casos:
1- com a maquina aberta via rdp;
2 - quando entro na máquina antes da execução, saio dela, mando rodar o login agent para desbloquear a tela e incio o processo.
Porém, se eu não abrir a máquina antes, o processo não funciona.
1457.png
Porém, quando o processo inicia a execução (máquina virtual windows server), o seguinte erro acontece no step do Activate Application: ERROR: Internal : Failed to perform step 3 in Navigate Stage 'Insere caminho do arquivo' on page 'Anexar Arquivo' - Could not identify process owning the current foreground window. 

O que já foi feito:
  • Tirei o Activate Application, porém dá acesso negado ao usar o GSK;
  • Usei o Focus no lugar do Activate Application, obtendo o mesmo erro acima;
  • Desativei o User Access Control do sistema;
  • Verifiquei se não havia sobreposição de tela;
  • Tentei usar o Activate Application num elemento da janela em Win32 ao invés da region.
  • Tentei usar o Global Mouse Click para colocar a janela em foco, obtive o mesmo erro acima.

OBS1: O sistema tem implementado o Login Agent para desbloqueio da tela.
OBS2: A máquina é acessível somente via RDP Windows.

Caso alguém saiba como resolver, ou tenha tido o mesmo erro e conseguiu contornar, agradeço desde já pela ajuda.

------------------------------
Juliana Figueiredo de Andrade
Developer
Yoobot
Itajubá
+55 35 3629-7555
------------------------------
3 REPLIES 3

Oi Juliana!

Oficialmente a Blue Prism não recomenda a utilização do RDP porque ele afeta o comportamento da automação quando não está sendo observada. Tem algumas alternativas recomendadas e mais sobre o assunto na documentação oficial (página 4).

Depois, é importante ressaltar que isso só é realmente necessário quando você utiliza um modo como "Accessibility" ou "Region" para interagir com os elementos, pois eles precisam do GUI ativo (foreground window). Pelo que você comentou:

"2 - quando entro na máquina antes da execução, saio dela, mando rodar o login agent para desbloquear a tela e incio o processo.
Porém, se eu não abrir a máquina antes, o processo não funciona."

Provavelmente o que acontece é que após você se desconectar, a VM deve atingir um timeout de sessão, ou suspensão de energia e simplesmente sair da tela. Você chegou a conferir as opções de energia, conexão e bloqueio da VM? Talvez se você desabilitar elas, o processo funcione normalmente.

Outra alternativa, no pior cenário, é tentar utilizar somente o teclado para essa função. Por exemplo, você pode adotar algum outro elemento que consiga identificar que a janela está aberta e então utilizar CTRL+L para acessar diretamente o campo de diretório e simplesmente clicar ENTER, após o diretório ser escrito. Aqui tem algumas alternativas também interessantes: 

Espero ter ajudado,

Abraços,



------------------------------
Marcelo Guimarães
Consultant
Bridge Consulting
------------------------------

Oi Marcelo, não cheguei a verificar as suspensões, mas na máquina roda outros dois processos antes mas que não possuem nenhum tipo de region, um deles 2 horas antes desse processo em questão, mas vou verificar essas informações. 

A questão do RDP é que o cliente diz não poder disponibilizar qualquer outra forma de acesso, já pedi pra utilizar vnc e me disseram que não seria possível.

Muito obrigado pela ajuda, vou tentar essas dicas.

------------------------------
Juliana Figueiredo de Andrade
Developer
Yoobot
Itajubá
+55 35 3629-7555
------------------------------

Oi Juliana, 

Para essa tela do Salvar você tem que criar um novo objeto e fazer um attach nela específico (não sei se foi isso que você fez). Fazendo o attach especificamente a essa tela você consegue mapear sem accessibility e sem region. 

Posso te buscar um exemplo, caso queira ver. 

Tenho processos executando em RDP e com essa tela de maneira atendida e desatendida funciona bem. 



------------------------------
Milena Martinelli Lopes
Automation Manager
Dirwa
America/Sao_Paulo
------------------------------