java-selenium鼠标键盘操作Actions类和Robot

Actions类

一、鼠标右击、双击

  Java代码

//定位百度首页右上角  新闻
WebElement Xw=driver.findElement(By.xpath("//*[@id='u1']/a[1]"));
//new Actions对象
Actions RightClick=new Actions(driver);
//在 新闻 上点击鼠标右键
RightClick.contextClick(Xw).perform();
Thread.sleep(3000);
//双击 新闻
RightClick.doubleClick(Xw).perform();
Thread.sleep(3000);

 

二、鼠标移动到指定位置

  java代码

//定位百度首页右侧 更多产品
WebElement gdcp=driver.findElement(By.xpath("//*[text()='更多产品']"));
//实例化Actions
Actions MTE=new Actions(driver);
//鼠标移动到 更多产品上
MTE.moveToElement(gdcp).perform();
//等待3秒
Thread.sleep(3000);

 

三、拖动元素

  java代码

//定位要拖动的元素
WebElement dg=driver.findElement(By.xpath("//*[text()='拖动']"));
//实例化Actions
Actions tuodong=new Actions(driver);
Thread.sleep(1000);
//将定位的dg拖动(100,300)
tuodong.dragAndDropBy(dg,100,300).perform();
Thread.sleep(2000);

 

四、将元素拖到另一元素上

  java代码

//定位要拖动的元素
WebElement ElementStart=driver.findElement(By.xpath("//*[text()='拖动']"));
//定位终点上的元素
WebElement ElementEnd=driver.findElement(By.xpath("//*[text()='tuodongduodong']"));
//实例化Actions
Actions CM=new Actions(driver);
CM.clickAndHold(ElementStart)
    .moveToElement(ElementEnd)
    .release(ElementEnd)
    .perform();

 

五、下拉框多选

  HTML源码

    <td>多选下拉框</td>                    
        <select id="selects" multiple="multiple">
            <option label="java">java</option>
            <option label="c">c</option>
            <option label="c++">c++</option>
            <option label="VB">VB</option>
            <option label="php">php</option>
            <option label="python">python</option>
            <option label="ruby">ruby</option>
        </select>

Java代码


    //获取下拉框中所有的文本元素
        List<WebElement> list=driver.findElements(By.xpath("//*[@id='selects']/option"));
        //实例化Actions
        Actions AtList=new Actions(driver);
        //按下CONTROL键
        AtList.keyDown(Keys.CONTROL)
        //点击第一个元素,第一个元素是被默认选中的,所以不想选择第一个就再点一下
        .click(list.get(0))
        //点击第二个元素
        .click(list.get(2))
        //点击第四个元素
        .click(list.get(3))
        //释放CONTROL键
        .keyUp(Keys.CONTROL)
        //执行
        .perform();

 

Robot类

按下按键 keyPress()

释放按键 keyRelease()

public void Robot() throws AWTException{
        driver.get("https://www.baidu.com/");
        //实例化Robot
        Robot rb=new Robot();
        //按下CONTROL键
        rb.keyPress(KeyEvent.VK_CONTROL);
        //按下s键
        rb.keyPress(KeyEvent.VK_S);
        Thread.sleep(1000);
        //松开s键
        rb.keyRelease(KeyEvent.VK_S);
        //松开CONTROL键
        rb.keyRelease(KeyEvent.VK_CONTROL);
        
    } 

 

posted @ 2019-01-22 18:04  酱醋茶cha  阅读(2184)  评论(0编辑  收藏  举报