selenium webdriver模拟鼠标键盘

在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标、键盘的一些输入操做。html

一、鼠标的左键点击、双击、拖拽、右键点击等;web

二、键盘的回车、回退、空格、ctrl、alt、shift等;测试

在webdriver中,有专门的一个类,是用来进行鼠标、键盘模拟操做的,那就是Actions类,该类使用时,又会涉及到Keyboard、Mouse、CompositeAction(复合动做),先对Mouse的方法作简单罗列,而后再用代码说明:spa

一、鼠标左键点击:orm

Actions action = new Actions(driver);htm

action.click(driver.findElement(By.by);blog

左键点击是普一般用的方法,前面已经介绍过一种更简单的方法:ip

Driverdriver=new Driver();get

driver.findElement(By.xpath(xpath)).click();it

 

二、鼠标左键双击:

Actionsaction = new Actions(driver);

action.doubleClick(driver.findElement(By.xpath(xpath)));

 

三、鼠标左键按下操做:

Actionsaction = new Actions(driver);

action.clickAndHold(driver.findElemen(By.xpath(xpath)));

 

四、鼠标左键移动到元素操做:

Actionsaction = new Actions(driver);

action.moveToElement(driver.findElement(By.xpath(xpath)));

 

五、鼠标右键点击操做:

Actionsaction = new Actions(driver) ;

action.contextClick(driver.findElement(By.xpath(xpath)));

 

六、组合的鼠标操做(将目标元素拖拽到指定的元素上):

Actionsaction = new Actions(driver);

action.dragAndDrop(driver.findElement(By.xpath(xpath)),driver.findElement(By.xpath(xpath)));

 

七、组合的鼠标操做(将目标元素拖拽到指定的元素上):

Actionsaction = new Actions(driver);

action.dragAndDrop(driver.findElement(By.xpath(xpath)),xOffset,yOffset);

 

代码演示:

driver.get("http://www.baidu.com");

driver.findElement(By.name("wd")).sendKeys("林丹");

 

//点击操做

driver.findElement(by.id("su")).click();

driver.navigate().back();

Actionsaction=new Actions(driver);

action.click(driver.findElement(by.id("su")));

 

//双击操做(略)

 

//拖拽选择操做,鼠标按住不放,进行拖拽选择,而后释放鼠标,须要三个动做

action.clickAndHold(driver.findElement(By.id("1"))).moveToElement(driver.findElement(By.id("3"))).perform();

action.release();

 

//拖拽元素,将一个元素拖拽到另外一个元素上,而后释放鼠标(略)

 

键盘模拟操做,包括普通按键,好比enter、backspace、tab等,还包括四个修饰键(Modifier Keys),分别是Caps Lock,Control,Option,Command。

普通按键使用时,直接使用sendkeys(theKeys)就能够,如按下enter键:

action.sendKeys(Keys.ENTER).perform();

 

修饰键通常使用时,是和别的按键配合使用的,好比快捷键ctrl+F4,这时就得使用keyDown(theKeys)、keyUp(theKeys)来操做,代码以下:

driver.get("http://www.baidu.com");

driver.findElement(by.name("wd")).sendKeys("林丹");

Actionsaction=new Actions(driver);

//输入框中输入内容,而后点击回车进行百度

action.sendKeys(Keys.ENTER).perform();

//使用快捷键alt+f4关闭窗口(可是该方法不稳定,时行时不行,不行居多)

action.keyDown(keys.ATL).keyDown(keys.F4).keyUp(keys.ALT).perform();

//使用ctrl+a全选

driver.findElement(By.id("kw")).click();

action.sendKeys(Keys.CONTROL+"a").perform();

 

转自:https://www.cnblogs.com/111testing/p/6152834.html

 

Tips:

一、拖拽选择时,使用clickAndHold和moveToElement时,会受到鼠标所在位置的影响,因此尽可能是两个方法一块儿使用;

二、拖拽元素时,dragAndDrop方法,我没有找到实现的场景,因此没有写代码试验;

三、直接按下普通按键时,直接使用sendkeys(theKeys)方法就可以实现;

四、须要使用修饰键时,须要连贯动做中应该使用keydown和keyup方法;

action.keyDown(keys.ATL).sendKeys(keys.F4).keyUp(keys.ALT).perform();//这是不能实现alt+f4关闭窗口的效果的,只能实现单独按f4的效果

五、对于一些快捷键,如ctrl+a,能够直接sendkeys(Keys.CONTROL+"a")。

相关文章
相关标签/搜索