引用包来自selenium-java-2.23.1.jar
调用以下代码时,需要引入actions类,以java为例: import org.openqa.selenium.interactions.Actions;
鼠标事件-概述
1.单击 click()、click(WebElement onElement)
2.双击doubleClick() 、 doubleClick(WebElement onElement)
3.右击contextClick()、 contextClick(WebElement onElement)
moveByOffset(int xOffset, int yOffset)、moveToElement(WebElement toElement)、moveToElement(WebElement toElement, int xOffset, int yOffset)
5.左键按下不释放 clickAndHold()、clickAndHold(WebElement onElement)
6.释放 release()、release(WebElement onElement),经常与clickAndHold相配合
7.拖动dragAndDrop(WebElement source, WebElement target)、 dragAndDropBy(WebElement source, int xOffset, int yOffset)
以上方法返回值均为Actions,需要调用perform()后才能真正执行。
键盘事件-概述
1.普通键操作:sendKeys(java.lang.CharSequence... keysToSend)、sendKeys(WebElement element, java.lang.CharSequence... keysToSend)
按下修饰键:keyDown(Keys theKey)、keyDown(WebElement element, Keys theKey)、sendKeys(keysToSend)
松开修饰键:keyUp(Keys theKey)、keyUp(WebElement element, Keys theKey)、sendKeys(Keys.NULL)
以上方法返回值均为Actions,需要调用perform()后才能真正执行。
keyDown\keyUp 参数只能是修饰键,否则抛出llegalArgumentException 异常
执行keyDown(theKey)和sendKeys(修饰键)后,需要明显释放,否则将一直执行;释放方法分别为keyUp(theKey),sendKeys(Keys.NULL)
区分Actions.sendKeys(keysToSend)和WebElement.sendKeys(CharSequence...)
执行事件
1.build():组合所有actions,生成新的actions
2.perform():执行actions,参考源码发现该方法包含build()
所有Actions事件必须调用perform后才被真正执行
====================