zoukankan      html  css  js  c++  java
  • Webdriver API (三)- actions

    Actions类主要定义了一些模拟用户的鼠标mouse,键盘keyboard操作。对于这些操作,使用perform()方法进行执行。

    actions类可以完成单一的操作,也可以完成几个操作的组合。

    有时在进行页面操作时,需要做一些特殊的操作,比如移动鼠标到某个位置悬停几秒,或是双击,或是拖拽某个元素,这种情况就需要用到actions类了。

    一、单一的操作

      单一的操作是指鼠标和键盘的一个操作。如鼠标左键按下、弹起或输入一个字符串等。

      比如双击:

    Actions dclick = new Actions(driver); 
    dclick.doubleClick(message).build().perform();
      再 比如:
    WebElement element = dr.findElement(By.id("test"));
    WebElement element1 = dr.findElement(By.id("test1"));
    element.sendKeys("test");
    element1.click;

      用Actions类就可以这样实现:

      action Actions action=new Actions(driver);
      WebElement element=dr.findElement(By.id("test"));
      WebElement element1=dr.findElement(By.id("su"));
      action.sendKeys(element,"test").perform();
      action.moveToElement(element1);
      action.click().perform();

      看起来用Actions类实现click和sendKeys有点烦索

     
    二、拖拽操作
        
    WebElement source = driver.findElement(By.id("draggable")); 拖拽源对象
    WebElement target = driver.findElement(By.id("droppable")); 拖拽目标对象
    Actions action= new Actions(driver); 
    action.dragAndDrop(source, target).perform(); 选中源对象并多拽到目标对象,然后drop(松开鼠标)
     
    三、组合操作

      上面的拖拽操作也可以像下面濱示的一样把几个操作放一起实现

      Action dragAndDrop = Builder.clickAndHold(source) .moveToElement(target ) .release(target ) .build().perform();

    其中Builder是action类下面的一个子类

    当然actions还有很多其他的用法,大家在需要时可以查阅其API找到自己需要的方法。
  • 相关阅读:
    关于-webkit-border-image的理解
    手机浏览pc网页,字体显示比样式中设置的字体更大
    网页乱码原理
    浏览器的钉点调试的作用
    zepto中的多点触摸
    parentNode和offsetParent的区别,仅仅只是定位相对不一样么
    ckeckbox的默认样式,label for添加toggle后失效,美化checkbox
    当stop()遇到animate()的回调函数
    有联系的标识变量的变化一定要同步
    当relative遇上z-index,半透明度不阻断事件捕获
  • 原文地址:https://www.cnblogs.com/jingwei/p/4835123.html
Copyright © 2011-2022 走看看