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);
}