selenium-WebDriver API(java)(五)

本篇知识点:

  • 模拟键盘的操作
  • 模拟鼠标右键事件
  • 在指定元素上方进行鼠标悬浮
  • 在指定元素上进行鼠标单击左键和释放的操作

模拟键盘的操作

被测试网页的网址:http://www.sogou.com

	// 模拟键盘的操作
	@Test
	public void clickKeys() {
		driver.get("http://www.sogou.com");// 打开sogou页面,焦点会自动定位到搜索输入框
		Actions actions = new Actions(driver);
		actions.keyDown(Keys.CONTROL);// 按下Ctrl键
		actions.keyDown(Keys.SHIFT);// 按下shift键
		actions.keyDown(Keys.ALT);// 按下alt键
		actions.keyUp(Keys.CONTROL);// 释放Ctrl键
		actions.keyUp(Keys.SHIFT);// 释放shift键
		actions.keyUp(Keys.ALT);// 释放alt键

		// 模拟键盘在搜索输入框中输入大写字母"ABCDEFG"
		actions.keyDown(Keys.SHIFT).sendKeys("abcdefg").perform();
	}

模拟鼠标右键事件

被测试网页:http://www.baidu.com

	// 模拟鼠标右键事件
	@Test(enabled = false)
	public void rigthClickMouse() {
		driver.get("http://www.baidu.com");
		Actions actions = new Actions(driver);
		// 调用Action对象的contextClick方法,在ID为kw的输入框上方单击鼠标右键
		// 模拟书包右键单击操作
		actions.contextClick(driver.findElement(By.id("kw"))).perform();
	}

在指定元素上方进行鼠标悬浮

被测试页面:http://www.baidu.com

// 在指定元素上方进行鼠标悬浮
	@Test
	public void roverOnElement() {
		driver.get("http://www.baidu.com");
		WebElement element1 = driver.findElement(By.name("tj_briicon"));
		WebElement element2 = driver.findElement(By.id("kw"));

		Actions actions = new Actions(driver);
		/*调用Action对象的moveToElement方法,将鼠标移到name为tj_briicon的链接上方
		 * 此代码被调用后,可以看到百度页面,更多产品那里有显示更多产品
		 */
		actions.moveToElement(element1).perform();

		try {
			//暂停5秒看效果
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		/*调用Action对象的moveToElement方法,将鼠标移到name为kw的元素上方
		 * 此代码被调用后,可以看到百度页面,更多产品那里的显示框消失
		 */
		actions.moveToElement(element2).perform();
		try {
			//暂停5秒看效果
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

在指定元素上进行鼠标单击左键和释放的操作

被测试HTML代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function mouseDownFun(){
	document.getElementById('div1').innerHTML+='鼠标左键被按下<br/>';
}

function mouseUpFun(){
	document.getElementById('div1').innerHTML+='已经按下的鼠标左键被释放<br/>';
}

function clickFun(){
	document.getElementById('div1').innerHTML+='单击动作已发生';
}
</script>
</head>
<body>
	<div id="div1" οnmοusedοwn="mouseDownFun()" οnmοuseup="mouseUpFun()"
		οnclick="clickFun();"
		style="background: #ccc; border: 3px solid #999; width: 200px; height: 200px; padding: 10px">
	</div>
	<input style="margin-top:10px" type="button" οnclick="document.getElementById('div1').innerHTM='';" value="清除信息"/>
</body>
</html>

具体实现代码:

	// 在指定元素上进行鼠标单击左键和释放的操作
	@Test
	public void mouseClickAnRelease() {
		driver.get("file:///F:/workspace/WebDriver%20API/mouseClickAndRelease.html"); //被测试html页面路径
		WebElement element = driver.findElement(By.id("div1"));

		Actions actions = new Actions(driver);

		// 调用Action对象的clickAndHold方法,在ID属性值为div1的元素上方单击鼠标左键并且不释放。此代码被调用后,可以看到页面打印出来的‘鼠标左键被按下’
		actions.clickAndHold(element).perform();

		try {
			//暂停5秒,可以看到页面打印出来“鼠标左键被按下”
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		// 调用Action对象的clickAndHold方法,在ID属性值为div1的元素上方释放书包左键。此代码被调用后,可以看到页面打印出来的‘已经按下的鼠标左键被释放’
		actions.release(element).perform();

		try {
			//暂停5秒,可以看到页面打印出来“已经按下的鼠标左键被释放”
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值