1. 程式人生 > >selenium 模擬鍵盤及滑鼠事件

selenium 模擬鍵盤及滑鼠事件

1.模擬鍵盤事件

Actions action = new Actions(driver);
		action.keyDown(Keys.CONTROL);
		action.keyDown(Keys.SHIFT);
		action.keyDown(Keys.ALT);
		action.keyUp(Keys.CONTROL);
		action.keyUp(Keys.SHIFT);
		action.keyUp(Keys.ALT);
		
		action.keyDown(Keys.SHIFT).sendKeys("adc").perform();

2.模擬右鍵點選事件
Actions action = new Actions(driver);
		action.contextClick(driver.findElement(By.id("query"))).perform();

3.指定元素上方進行滑鼠懸浮
<html>
	<head>
	<meta http-equiv="Content-type" content="text/html;charset=gb2312"/>
	<script language="javascript">
		function shownone()
		{
			document.getElementById('div1').style.display="none";
		}
		function showBlock()
		{
			document.getElementById('div1').style.display="block";
		}
	</script>
	<style type="text/css">
	<!--#div1{
	position:absolute;
	width:200px;height:115px;
	z-index:1;
	left 28px;top:34px;background-color:#0033CC;
	}-->
	</style>
	</head>
<body onload="shownone()">
		<div id ="div1"></div>
		<a onmouseover="showBlock()" onmouseout="shownone()" id="link1">滑鼠指過來</a>
		<a onmouseover="showBlock()" onmouseout="shownone()" id="link2">滑鼠指過來</a>
</body>
</html>
selenium程式碼
WebElement link1 =driver.findElement(By.xpath("//a[@id='link1']"));
		WebElement link2 = driver.findElement(By.xpath("//a[@id='link2']"));
		
		new Actions(driver).moveToElement(link1).perform();
		
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
		new Actions(driver).moveToElement(link2).perform();


關於<!--   -->

你把註釋符寫在超連結標籤裡,它就會成為超連結的一部分顯示在頁面上。


同理,你把註釋符寫在style標籤裡,它就是style標籤的一部分,那麼它暫時就起不到註釋的作用。試想,在style標籤有這麼兩行,style標籤這麼理解它?style標籤不認識它,那麼style標籤就不理它,當成沒有它。所以這個註釋符就沒有任何作用,完全是廢物。


前面所說的有一個前提,那就是瀏覽器知道,style標籤是樣式表的標籤。但如果瀏覽器不知道該怎麼理解style標籤呢?瀏覽器就跟style不理解註釋符一樣,瀏覽器也會完全把style標籤當廢物,不理它。這時因為style寫在<>裡,它怎麼說也是一個標籤,就想<br/>等,雖然不認識,也只能不顯示,不處理。你可以隨便在html裡寫一個標籤,比如<sahdjksahf></sahdjksahf>,瀏覽器不認識的標籤,瀏覽器就什麼都不做,也不會把這個標籤當文字顯示出。


可是如果瀏覽器不認識style,瀏覽器可以不處理不顯示style標籤,但style標籤裡的文字還是要顯示的,所以如果瀏覽器不認識style的時候,你的那些個樣式表就都成了html的文字內容了。


你也不想這樣吧?但如果瀏覽器不認識style標籤,而此時style標籤裡又有註釋符,瀏覽器會避開style而直接找到註釋符,這樣那些樣式表內容就被註釋掉了。


所以,這樣的註釋符的作用是當瀏覽器不支援style標籤的時候,將style標籤裡的內容轉化成註釋,從而防止樣式表被當成網頁內容顯示出來。同樣的道理還可以用在script標籤裡。