Operações de Mouse e Teclado com as Classes Actions e Robot

Classe Actions

1. Clique direito e duplo clique

Código Java:


// Localiza o link "Notícias" no topo da página inicial do Baidu
WebElement noticia = driver.findElement(By.xpath("//*[@id='u1']/a[1]"));

// Instancia a classe Actions
Actions acoes = new Actions(driver);

// Clique com o botão direito no link "Notícias"
acoes.contextClick(noticia).perform();
Thread.sleep(3000);

// Duplo clique no link "Notícias"
acoes.doubleClick(noticia).perform();
Thread.sleep(3000);

2. Mover o mouce até uma posição específica

Código Java:


// Localiza o elemento "Mais Produtos" no lado direito da página do Baidu
WebElement maisProdutos = driver.findElement(By.xpath("//*[text()='Mais Produtos']"));

// Instancia a classe Actions
Actions acoes = new Actions(driver);

// Move o mouse para o elemento "Mais Produtos"
acoes.moveToElement(maisProdutos).perform();

// Aguarda 3 segundos
Thread.sleep(3000);

3. Arrastar um elemento

Endereço de prática: https://www.jqueryiu.org.cn/demo/5621.html

Código Java:


// Localiza o elemento a ser arrastado
WebElement arrastar = driver.findElement(By.xpath("//*[text()='Arrastar']"));

// Instancia a classe Actions
Actions acoes = new Actions(driver);
Thread.sleep(1000);

// Arrasta o elemento para as coordenadas (100, 300)
acoes.dragAndDropBy(arrastar, 100, 300).perform();
Thread.sleep(2000);

4. Arrastar um elemennto para outro

Código Java:


// Localiza o elemento de origem a ser arrastado
WebElement origem = driver.findElement(By.xpath("//*[text()='Arrastar']"));

// Localiza o elemento de destino
WebElement destino = driver.findElement(By.xpath("//*[text()='Destino']"));

// Instancia a classe Actions
Actions acoes = new Actions(driver);

acoes.clickAndHold(origem)
    .moveToElement(destino)
    .release(destino)
    .perform();

5. Seleção múltipla em um dropdown

Código HTML:


<td>Dropdown de seleção múltipla</td>
<select id="selects" multiple="multiple">
    <option label="java">java</option>
    <option label="c">c</option>
    <option label="c++">c++</option>
    <option label="VB">VB</option>
    <option label="php">php</option>
    <option label="python">python</option>
    <option label="ruby">ruby</option>
</select>

Código Java:


// Obtém todos os elementos <option> do dropdown
List<WebElement> opcoes = driver.findElements(By.xpath("//*[@id='selects']/option"));

// Instancia a classe Actions
Actions acoes = new Actions(driver);

// Mantém a tecla CONTROL pressionada
acoes.keyDown(Keys.CONTROL)
    // Clica no primeiro elemento (está selecionado por padrão, então clicar novamente desmarca)
    .click(opcoes.get(0))
    // Clica no terceiro elemento
    .click(opcoes.get(2))
    // Clica no quarto elemento
    .click(opcoes.get(3))
    // Libera a tecla CONTROL
    .keyUp(Keys.CONTROL)
    // Executa a sequência
    .perform();

Classe Robot

Pressionar teclas: keyPress()

Liberar teclas: keyRelease()


public void salvarPagina() throws AWTException {
    driver.get("https://www.baidu.com/");

    // Instancia a classe Robot
    Robot robot = new Robot();

    // Pressiona a tecla CONTROL
    robot.keyPress(KeyEvent.VK_CONTROL);
    // Pressiona a tecla S
    robot.keyPress(KeyEvent.VK_S);
    Thread.sleep(1000);

    // Libera a tecla S
    robot.keyRelease(KeyEvent.VK_S);
    // Libera a tecla CONTROL
    robot.keyRelease(KeyEvent.VK_CONTROL);
}

Tags: Selenium WebDriver java Actions Robot

Publicado em 9-8 00:46