Clique do mouse & Evento de teclado: classe de ação no Selenium Webdriver

Índice:

Anonim

Neste tutorial, aprenderemos a lidar com eventos de teclado e mouse no Selenium Webdriver

Classe de ação em selênio

A classe de ação no Selenium é um recurso integrado fornecido pelo selenium para lidar com eventos de teclado e mouse. Inclui várias operações, como vários eventos clicando por tecla de controle, arrastar e soltar eventos e muito mais. Essas operações da classe de ação são realizadas usando a API avançada de interação do usuário no Selenium Webdriver.

Tratamento de eventos de teclado e mouse

O tratamento de eventos especiais de teclado e mouse é feito usando a API Advanced User Interactions . Ele contém as ações e as classes de ação necessárias ao executar esses eventos. A seguir estão os eventos de teclado e mouse mais comumente usados, fornecidos pela classe Actions.

Método Descrição
Clique e segure() Clica (sem soltar) no local atual do mouse.
contextClick () Executa um clique de contexto no local atual do mouse. (Clique com o botão direito do mouse em ação)
Duplo click() Executa um clique duplo no local atual do mouse.
dragAndDrop (fonte, destino) Executa o clique e mantenha pressionado no local do elemento de origem, move-se para o local do elemento de destino e, em seguida, libera o mouse. Parâmetros: source- element para emular o botão at.target- element para mover e soltar o mouse em.
dragAndDropBy (fonte, deslocamento x, deslocamento y) Executa um clique e mantenha pressionado no local do elemento de origem, se move em um determinado deslocamento e, em seguida, libera o mouse. Parâmetros : source- elemento para emular o botão pressionado em.xOffset- deslocamento horizontal do movimento.yOffset- deslocamento do movimento vertical.
keyDown (modifier_key) Executa um pressionamento de tecla modificadora. Não libera a tecla modificadora - as interações subsequentes podem presumir que ela foi mantida pressionada. Parâmetros : modifier_key - qualquer uma das teclas modificadoras (Keys.ALT, Keys.SHIFT ou Keys.CONTROL)
keyUp (modificador _key) Executa uma liberação de chave. Parâmetros : modifier_key - qualquer uma das teclas modificadoras (Keys.ALT, Keys.SHIFT ou Keys.CONTROL)
moveByOffset (deslocamento x, deslocamento y) Move o mouse de sua posição atual (ou 0,0) pelo deslocamento fornecido. Parâmetros : x-offset- deslocamento horizontal. Um valor negativo significa mover o mouse para a esquerda.y-offset-offset vertical. Um valor negativo significa mover o mouse para baixo.
moveToElement (toElement) Move o mouse para o meio do elemento. Parâmetros : toElement- elemento para o qual mover.
lançamento() Libera o botão esquerdo do mouse pressionado na localização atual do mouse
sendKeys (onElement, charsequence) Envia uma série de pressionamentos de tecla para o elemento. Parâmetros : onElement - elemento que receberá as teclas, geralmente um campo de textocharsequence - qualquer valor de string representando a sequência de teclas a serem enviadas

No exemplo a seguir, devemos usar o método moveToElement () para passar o mouse sobre as linhas de uma tabela da Mercury Tours. Veja o exemplo abaixo.

A célula mostrada acima é uma parte de um elemento . Se não pairar, sua cor é # FFC455 (laranja). Depois de pairar, a cor da célula se torna transparente. Ele se torna da mesma cor que o fundo azul de toda a mesa laranja.

Etapa 1: importar as ações e classes de ação .

Etapa 2: instancie um novo objeto Actions.

Etapa 3: instancie uma ação usando o objeto Ações na etapa 2.

Nesse caso, usaremos o método moveToElement () porque simplesmente passaremos o mouse sobre o link "Home". O método build () é sempre o método final usado para que todas as ações listadas sejam compiladas em uma única etapa.

Etapa 4: use o método perform () ao executar o objeto Action que projetamos na Etapa 3.

Abaixo está todo o código WebDriver para verificar a cor de fundo do elemento antes e depois de passar o mouse.

package newproject;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;public class PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Driver WebDriver = novo FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Home"));WebElement td_Home = driver.findElement (por.xpath ("// html / body / div"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ mesa / tbody / tr"));Construtor de ações = novas ações (driver);Ação mouseOverHome = builder.moveToElement (link_Home).Construir();String bgColor = td_Home.getCssValue ("background-color");System.out.println ("Antes de passar o mouse: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("cor de fundo");System.out.println ("Após pairar: + bgColor);driver.close ();}}

A saída abaixo afirma claramente que a cor de fundo se tornou transparente após a passagem do mouse.

Construindo uma série de ações múltiplas

Você pode construir uma série de ações usando as classes Action e Actions . Apenas lembre-se de fechar a série com o método build (). Considere o código de exemplo abaixo.

public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";Driver WebDriver = novo FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("email"));Construtor de ações = novas ações (driver);Action seriesOfActions = builder.moveToElement (txtUsername).clique().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "hello").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().Construir();seriesOfActions.perform ();}

Resumo

  • O tratamento de eventos especiais de teclado e mouse é feito usando a API AdvancedUserInteractions.
  • Eventos de palavra-chave e mouse usados ​​com frequência são doubleClick (), keyUp, dragAndDropBy, contextClick e sendKeys.