zoukankan      html  css  js  c++  java
  • 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));

      }

      }

  • 相关阅读:
    写MBA毕业论文有感-重口味,不喜莫入
    Android中级第三讲如何复用AlertDialog
    Android初级开发第二讲项目学习
    那些消失的计算机技术(一)
    Android中级第一讲如何学习Android自带的demo项目
    Java基础之continue与break区别
    刨根问底系列之C++ const 挖掘
    Unity3d http 通信
    Windows Phone 7 不温不火学习之《启动器与选择器》
    Windows Phone7 不温不火学习之《应用程序生命周期》
  • 原文地址:https://www.cnblogs.com/sschen/p/3197659.html
Copyright © 2011-2022 走看看