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));

      }

      }

  • 相关阅读:
    今天开始用 VSU 2010
    Visual Studio 2010 模型设计工具 基本应用
    Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
    Enterprise Library 4.1 Security Block 快速使用图文笔记
    解决“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。”(图)
    一个Oracle存储过程示例
    Enterprise Library 4.1 Application Settings 快速使用图文笔记
    Oracle 10g for Windows 简体中文版的安装过程
    Oracle 11g for Windows 简体中文版的安装过程
    Oracle 9i 数据库 创建数据库 Net 配置 创建表 SQL查询 创建存储过程 (图)
  • 原文地址:https://www.cnblogs.com/sschen/p/3197659.html
Copyright © 2011-2022 走看看