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

      }

      }

  • 相关阅读:
    MySQL线程独享内存参数
    asp.net使用飞信fetionAPI接口免费发送短信的c#的实例
    VS2008不能创建解决方案
    转载:nginx配置文件的location标签执行顺序和反向代理配置
    图文讲解如何使用Gmail绑定域名开通企业邮箱(使用时代互联的域名管理后台)
    如何在博客园上放google adsense广告,并且不被博客园屏蔽掉google adsense的src
    kingcms 标签
    ADO.NET与SQL Server数据库的交互
    asp.net结合jQuery实现google suggest效果
    ADO.NET与Sql Server和Access的连接
  • 原文地址:https://www.cnblogs.com/sschen/p/3197659.html
Copyright © 2011-2022 走看看