Reproduzindo Ações do Mouse e do Teclado em Baixo Nível

A reprodução de ações do mouse e do teclado em baixo nível fornece mais controle de eventos de ações do usuário. Por exemplo, o Functional Tester suporta atualmente o TestObject.click(), no qual o clique consiste em ações em baixo nível, incluindo movimento do mouse, botão esquerdo do mouse para baixo e botão esquerdo do mouse para cima. Com essa funcionalidade, você pode reproduzir os componentes individuais de um clique do mouse.

A reprodução em baixo nível também suporta a rolagem da roda do mouse.

Talvez você queira utilizar a reprodução em baixo nível para superar uma limitação do produto ou uma ação obscura do mouse ou do teclado. Por exemplo, para desenhar um círculo em uma canvas em um programa de desenho, o Functional Tester não suporta a operação arrastar circular complexa, mas você pode utilizar o método drag() para desenhar linhas retas. Para superar uma ação obscura do mouse ou do teclado, você pode utilizar a reprodução em baixo nível para reproduzir as ações do mouse para desenhar o círculo.

A classe RootTestObject inclui dois métodos:

Os métodos do depósito de informações do provedor sobre SubitemFactory para construção de LowLevelEvents incluem:

Existem métodos paralelos para os botões central e da direita do mouse. O evento de retardo garante um retardo de pelo menos os milissegundos especificados, considerando o tempo utilizado pelo sistema para consumir o evento anterior.

Um exemplo do Functional Tester, Java™ Scripting, para desenhar a letra V na parte superior esquerda da canvas de desenho:

// Esta rotina desenhará uma letra "V" na parte superior esquerda
// da canvas de desenho.
// Primeiramente, será clicado um ponto no canto superior esquerdo, o botão esquerdo
// do mouse será mantido pressionado durante a ação, o mouse
// será movido para a direita e para baixo e, em seguida, para a direita e novamente para cima
// e, finalmente, o botão esquerdo do mouse será liberado.
Rectangle screenRect =
   (Rectangle) drawingWindow().getProperty(".screenRectangle");
Point origin = new Point(screenRect.x + 5, screenRect.y + 5);
LowLevelEvent llEvents[] = new LowLevelEvent[7];
llEvents[0] = mouseMove(atPoint(origin.x, origin.y));
llEvents[1] = leftMouseButtonDown();
// insira um retardo para que o SUT tenha tempo de responder
// aos eventos que estão sendo entregues a ele.
llEvents[2] = delay(250);
llEvents[3] = mouseMove(atPoint(origin.x + 25, origin.y + 50));
llEvents[4] = delay(250);
llEvents[5] = mouseMove(atPoint(origin.x + 50, origin.y));
llEvents[6] = leftMouseButtonUp();
getRootTestObject().emitLowLevelEvent(llEvents);

Um exemplo do Functional Tester, VB.NET Scripting, para testar um controle TrackBar e confirmar se ele responderá aos eventos da roda do mouse:

' Este exemplo testará um controle TrackBar para verificar
' se ele responde a eventos da roda do mouse,
TrackBar1Slider().Click(AtPoint(0, 0))
' Crie um Evento de Baixo Nível representando uma rolagem
' da roda do mouse para baixo 25 cliques.
Dim ScrollDown As LowLevelEvent = MouseWheel(-25)
GetRootTestObject().EmitLowLevelEvent(ScrollDown)
' Verifique os Resultados.

Feedback