• webdriver 获取元素焦点方法


    ---------------------------------------

    http://www.ltesting.net/ceshi/open/kygncsgj/selenium/2013/0115/205906.html

    自动化过 程中,有时候我们需要给某个元素设置焦点,在selenium1.0中提供了给元素设置焦点的方法。但是在2.0中并没有该办法。如果是输入框我们可以使 用click方法,来设置焦点,但是对于link连接或者button如果通过click方法势必会跳转到另外页面或者提交了页面请求。通过尝试发现,如 果在元素上进行右击,也可以设置焦点,但是会弹出一个菜单,这个时候我们可以通过按下键盘的esc键来取消右击弹出的菜单,这样焦点就可以设置成功了。下 面我通过键盘和鼠标事件组合来实现该功能。代码如下:

      import java.awt.AWTException;

      import java.awt.Robot;

      import java.awt.event.KeyEvent;

      import org.openqa.selenium.By;

      import org.openqa.selenium.WebDriver;

      import org.openqa.selenium.WebElement;

      import org.openqa.selenium.firefox.FirefoxDriver;

      import org.openqa.selenium.firefox.FirefoxProfile;

      import org.openqa.selenium.interactions.Actions;

      import org.openqa.selenium.remote.DesiredCapabilities;

      import org.testng.annotations.AfterMethod;

      import org.testng.annotations.BeforeMethod;

      import org.testng.annotations.Test;

      public class TestActive {

      WebDriver driver = null;

      Actions action = null;

      Robot robot = null;

      @BeforeMethod

      public void setUp(){

      try {

      robot = new Robot();

      } catch (AWTException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      }

      System.setProperty(“webdriver.firefox.bin”, “D:/Firefox/firefox.exe”);

      FirefoxProfile file = new FirefoxProfile();

      DesiredCapabilities ds = DesiredCapabilities.firefox();

      ds.setCapability(FirefoxDriver.PROFILE, file);

      driver = new FirefoxDriver(ds);

      action = new Actions(driver);

      }

      @AfterMethod

      public void tearDown(){

      }

      @Test

      public void start(){

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

      driver.manage().window().maximize();

      //查找你需要设置焦点的元素

      WebElement button = driver.findElement(By.xpath(“//*[@id='nv']/a[5]“));

      //对该元素进行右击操作

      action.contextClick(button).perform();

      //按ESC键返回,设置焦点成功

      robot.keyPress(KeyEvent.VK_ESCAPE);

    //用selenium中自带的key方法也是OK的,import org.openqa.selenium.Keys;   如下方法,也是按ESC键

    button.sendKeys(Keys.chord(Keys.ESCAPE));

      }

      }

  • 相关阅读:
    Ionic Js十:加载动作
    Ionic Js九:列表操作
    Ionic Js八:头部和底部
    Ionic Js七:手势事件
    库文件
    驱动知识
    自启动总结
    学习笔记
    写脚本切换用户
    未找到arm-linux-gcc解决办法
  • 原文地址:https://www.cnblogs.com/sschen/p/3197659.html
Copyright © 2020-2023  润新知