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

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

  }

  }

webdriver 获取元素焦点方法的更多相关文章

  1. JavaScript通过元素id和name直接获取元素的方法

    概览: 偶然的机会,我在JavaScript中直接用HTML元素的id属性来获取该元素,并设置该元素的其他属性值,竟然能够正确解析不报错!于是我去查阅相关资料,也有其他同行这么用. 虽然说这种用法不是 ...

  2. JQuery获取元素的方法总结

    JQuery获取元素的方法总结 一.说明   获取元素的方法分为两种:jQuery选择器.jQuery遍历函数. 做个总结,巩固下知识. 二.获取本身 1.只需要一种jQuery选择器   选择器 实 ...

  3. 【鬼脸原创】JQuery获取元素的方法总结

    目录 一.说明 二.获取本身 三.获取同级元素 四.获取父级元素 五.获取子级元素 一.说明   获取元素的方法分为两种:jQuery选择器.jQuery遍历函数. 做个总结,巩固下知识. 二.获取本 ...

  4. selenium获取元素信息方法(转载)

    1.获取当前页面的Url函数 方法:current_url 实例: driver.current_url 2.获取元素坐标 方法:location 解释:首先查找到你要获取元素的,然后调用locati ...

  5. webDriver定位元素的方法

    在UI层面的自动化测试开发中,元素的定位与操作是基础,也是经常遇到的困难所在.webdriver提供了8种定位: 1. id定位:find_element_by_id("id值") ...

  6. javascript获取元素的方法[xyyit]

    1. javascript默认的方法: <div id=”div_id” class=”div_class” name=”div_name”></div> //1. 根据id ...

  7. DOM获取元素的方法

    DOM:document object module 文档对象模型 DOM就是描述整个html页面中节点关系的图谱,如下图. 1,通过ID,获取页面中元素的方法:(上下文必须是document) do ...

  8. JavaScript中的获取元素的方法

    通过id获取元素 document.getElementById(id名字) 通过标签获取元素 document/元素.getElementsByTagName(标签名) 通过css选择器获取元素 d ...

  9. juery获取元素的方法

    1 从集合中通过指定的序号获取元素 html: 复制代码 代码如下: <div> <p>0</p> <p>1</p> <p>2& ...

随机推荐

  1. PCI Express(四) - The transaction layer

    原文出处:http://www.fpga4fun.com/PCI-Express4.html 感觉没什么好翻译的,都比较简单,主要讲了TLP的帧结构 In the transaction layer, ...

  2. 转:RealThinClient LinkedObjects Demo解析

    这个Demo源码实现比较怪,有点拗脑,原因估是作者想把控件的使用做得简单,而封装太多. 这里说是解析,其实是粗析,俺没有耐心每个实现点都查实清楚,看源码一般也就连读带猜的. 这个Demo表达出的意义, ...

  3. JavaScript 常用算法

    1.排序算法 (1)冒泡排序,冒泡排序其实就是通过比较相邻位置的元素大小,如果左边比右边大,就交换位置,继续比较,实际上就是每轮比较都得出一个最大值,然后通过多伦比较得出. function bubb ...

  4. TJI读书笔记11-多态

    TJI读书笔记11-多态 再说说向上转型 多态的原理 构造器和多态 协变返回类型 使用继承进行设计 多态是数据抽象和继承之后的第三种基本特征. 一句话说,多态分离了做什么和怎么做(再次对埃大爷佩服的五 ...

  5. JavaWeb总结--Servlet 工作原理解析

    从 Servlet 容器说起 要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力 ...

  6. file access , argc, argv[ ]

    _____main函数含有 两个参数 ,argc ,argv[] 这两个参数用以指示命令行输入的参数信息. argc 的值是输入的参数的数量.argv是一个数组,每个数组元素指向一个string字符串 ...

  7. 【Django】Django model与数据库操作对应关系(转)

    Django对数据库的操作分用到三个类:Manager.QuerySet.Model. Manager的主要功能定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manag ...

  8. JavaScript系列:Date对象

    <script type="text/javascript">    var oDate = new Date();    var iYear = oDate.getF ...

  9. Django concept

    1. MVC in Django http://stackoverflow.com/questions/6621653/django-vs-model-view-controller https:// ...

  10. 调用xml文件的bean

    AcTest.class package com.zyz.db; import com.zyz.dao.PersonDao; import org.springframework.context.Ap ...