Jump to content
Everton Nunes

Um timeout para o ControlClik

Recommended Posts

Olá , estou desenvolvendo um script para executar testes em um programa da empresa, já encontrei diversas dificuldades como por exemplo não conseguir achar o valor da Instance do campo, pois o mesmo é desenvolvido em C#, contudo eu travei em achar uma solução quando se trata de desenvolver o código definindo o valor das variáveis com as Instance, entretanto ela mesmo muda seu valor sem mesmo ter reiniciado o sistema. No momento estou definindo as variáveis em um documento a parte e fazendo um #include pois as variáveis são as mesma nos vários testes. Aguardo feedback, grato desde já.

 

Segue tumbnails

 

 

 

post-4730-0-95564000-1519136211_thumb.png

post-4730-0-08937700-1519136223_thumb.png

Share this post


Link to post
Share on other sites

Olá Everton Nunes.

 

Não entendi sua referência em colocar as variáveis num #include. Que diferença faz se colocar no corpo do script?

 

Realmente o AutoIt é muito bom em automação de testes, mas não é mágico. Se o programa-alvo não permite que seja identificado as variáveis (por qualquer motivo) é osso de fazer funcionar mesmo!

 

Pode explicar melhor essa questão das variáveis variarem?

Share this post


Link to post
Share on other sites

Olá Manimal.

 

Realmente eu me perdi na explicação, estou usando as variáveis em um #include exatamente por este motivo, quando o finder tool consegue as informações do campo, a INSTANCE altera com frequência, e como o teste é de funcionalidade eu uso a mesma variáveis em vários scrip, contudo fica mais fácil eu conferir e alterar as INSTANCE todas em um documento só do que abrir script por script. Em relação ao título em pensei o seguinte, essas alterações ocorre somente em algum campos e também muda para os mesmos números (Ex: Se estava 6 muda pra 7 e se estava 7 muda para 6 o mesmo quando), pensei na possibilidade de mandar o comando de ControlClick e fazer um ImageSearch com timeout, seria viável? Agradeço o retorno, grato desde já.

 

Att,

 

Everton.

Edited by Everton Nunes

Share this post


Link to post
Share on other sites

Desculpa mas acabei respondendo uma outra dúvida do Everton no tópico errado hehe.
Se puder deletar meu comentário eu agradeço.

Edited by lucasayrton

Share this post


Link to post
Share on other sites

Tenta o numero da instancia depois da classe. Ex:

$botao_adicionar = "[CLASS:TBPanel7]"

Outro exemplo:

Run("notepad.exe","",@SW_MINIMIZE )
 
    Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
 
    Sleep(2000)
 
    ControlSend($hWnd, "", "Edit1", "This is some text")

Outro usando controlClick. Não precisa estar maximizado para que a função seja executada.

Run("dxdiag")
   ;Run("dxdiag","",@SW_MINIMIZE)
    
    Local $hWnd = WinWait("[CLASS:#32770]", "", 10)

    Sleep(2000)

    ControlClick($hWnd, "", "Button5","left")
    ControlClick($hWnd, "", "Button7","left")
    ControlClick($hWnd, "", "Button6","left")
    ControlClick($hWnd, "", "Button6","left")

Ou você pode usar o "ControlCommand", com ele você pode marcar checkbox, mover para a proxima TAB, retorna se o control está visível ou não, seleciona uma opção do comboBox ou ListBox...resumindo, ele simula o que o usuário pode fazer no programa sem a necessidade de interação direta.

Edited by Pedro Pinheiro

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×