selenium 使用教程详解-java版本 (8)

Navigation 对象提供的方法:

方法 描述
navigate.to(url)   跳转到指定url,和 webdriver 使用 get 方法是一样的。  
navigate.refresh()   刷新当前页面。  
navigate.back()   浏览器回退操作。  
navigate.forward()   浏览器前进操作。  
第九章 模拟鼠标键盘操作 9.1.模拟鼠标

在WebDriver中,关于鼠标的操作我们可以通过 Actions 类来模拟鼠标右击、双击、悬停、拖动等操作。

Actions 类中鼠标操作常用方法:

方法 描述
contextClick()   鼠标右击  
clickAndHold(WebElement)   点击并控制(模拟悬停)  
doubleClick(WebElement)   鼠标双击  
dragAndDrop(webElement1,webElement2)   鼠标拖动  
moveToElement(WebElement)   鼠标移动到某个元素上  
perform()   执行所有Actions中存储的行为  
click()   鼠标单击(左击)  

示例:百度首页设置悬停下拉菜单

import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.interactions.Actions; public class MouseDemo { public static void main(String[] args) { WebDriver driver = new ChromeDriver(); driver.get("https://www.baidu.com/"); // 定位元素 WebElement search_setting = driver.findElement(By.linkText("设置")); // 创建actions对象 Actions action = new Actions(driver); // 模拟鼠标悬停 action.clickAndHold(search_setting).perform(); driver.quit(); } }

其他方法使用:

Actions action = new Actions(driver); // 鼠标右键点击指定的元素 action.contextClick(driver.findElement(By.id("element"))).perform(); // 鼠标双击指定的元素 action.doubleClick(driver.findElement(By.id("element"))).perform(); // 鼠标移到到指定元素上 action.moveToElement(driver.findElement(By.id("element"))).perform(); // 鼠标拖拽动作, 将 source 元素拖放到 target 元素的位置。 WebElement source = driver.findElement(By.name("element")); WebElement target = driver.findElement(By.name("element")); action.dragAndDrop(source,target).perform(); // 释放鼠标 action.release().perform(); 9.2.模拟键盘

在 selenium 中有个 Keys() 类(枚举类),提供了几乎键盘上所有按键的方法,在使用的过程中,我们可以通过 sendKeys() 方法来模拟键盘的输入,除此之外,我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A、 Ctrl+C 等。

以下为常用的键盘操作:

sendKeys(Keys.BACK_SPACE) 回格键(BackSpace)

sendKeys(Keys.SPACE) 空格键 (Space)

sendKeys(Keys.TAB) 制表键 (Tab)

sendKeys(Keys.ESCAPE) 回退键(Esc)

sendKeys(Keys.ENTER) 回车键(Enter)

sendKeys(Keys.CONTROL,'a') 全选(Ctrl+A)

sendKeys(Keys.CONTROL,'c') 复制(Ctrl+C)

sendKeys(Keys.CONTROL,'x') 剪切(Ctrl+X)

sendKeys(Keys.CONTROL,'v') 粘贴(Ctrl+V)

sendKeys(Keys.F1) 键盘 F1

……

sendKeys(Keys.F12) 键盘 F12

在使用键盘按键方法前,我们需要先导入 keys 类。

import org.openqa.selenium.WebElement; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.By; import org.openqa.selenium.Keys; public class Keyboard { public static void main(String[] args)throws InterruptedException { WebDriver driver = new ChromeDriver(); driver.get("https://www.baidu.com"); // 定位到对应的元素 WebElement input = driver.findElement(By.id("kw")); //输入框输入内容 input.sendKeys("seleniumm"); Thread.sleep(2000); //删除多输入的一个 m input.sendKeys(Keys.BACK_SPACE); Thread.sleep(2000); //输入空格键+“教程” input.sendKeys(Keys.SPACE); input.sendKeys("教程"); Thread.sleep(2000); //ctrl+a 全选输入框内容 input.sendKeys(Keys.CONTROL,"a"); Thread.sleep(2000); //ctrl+x 剪切输入框内容 input.sendKeys(Keys.CONTROL,"x"); Thread.sleep(2000); //ctrl+v 粘贴内容到输入框 input.sendKeys(Keys.CONTROL,"v"); Thread.sleep(2000); //通过回车键盘来代替点击操作 input.sendKeys(Keys.ENTER); Thread.sleep(2000); driver.quit(); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjgxg.html