Selenium2(WebDriver)总结(五)---元素操作进阶(常用类)

 1、Alert类

  1.  Alert是指windows弹窗的一些操作,需要new一个Alert类
  2.  driver.switchTo().alert():切换到alert窗口
  3.  alert.getText():取得弹窗上面的字符串
  4.  alert.accept():点击确定/ok类的按钮,使弹窗消失
  5.  alert.dismiss():取消
    public void testAlert(){
        WebElement element = driver.findElement(By.className("alert"));
        element.click();
        Alert alert = driver.switchTo().alert();
        String text = alert.getText();
        alert.accept();
        //alert.dismiss();
        System.out.println(text);
    }

 使用Actions类

  1. 先要new一个Actions的类对象
  2. 最后的perform()一定要加上,否则执行不成功
    public void testAlertByActions(){
        WebElement element = driver.findElement(By.className("alert"));
        Actions action = new Actions(driver);
        action.click(element).perform();
        Alert alert = driver.switchTo().alert();
        String text = alert.getText();
        alert.accept();
        //alert.dismiss();
        System.out.println(text);
    }

 2、Action类

  1. 先要new一个Actions的类对象
  2. 最后的perform()一定要加上,否则执行不成功
    public void testActions(){
        WebElement element = driver.findElement(By.className("over"));
        Actions action = new Actions(driver);
        action.moveToElement(element).perform();
        String text = driver.findElement(By.id("over")).getText();
        System.out.println(text);
    }

 3、调用JS 

  1. 一般用来执行一段JS,来改变HTML
  2. 一些非标准控件无法用selenium2的API时,可以执行JS的办法来取代
  3. executeScript这个方法的参数为字符串,为一段JS代码
    public void testJS(){
        JavascriptExecutor executor = (JavascriptExecutor)driver;
        executor.executeScript("alert('helloworld')");
    }

 4、Wait机制及实现

  •  在规定的时间内只要符合条件即返回,下面的代码中是只要isDisplayed即返回
public void testWait(){
        WebElement waitButton = driver.findElement(By.id("wait"));
        waitButton.click();
        boolean flag = new WebDriverWait(driver, 10).until
                (
                        new ExpectedCondition<Boolean>()
                        {
                            public Boolean apply(WebDriver driver)
                            {
                                return driver.findElement(By.className("red")).isDisplayed();
                            }
                        }
                );
        if(flag){
            String text = driver.findElement(By.className("red")).getText();
            System.out.println(text);
        }
    }

 5、Iframe操作

  1. 如果iframe标签有能够唯一确定的id或者name,就可以直接用id或者name的值:driver.switchTo().frame("aa");
  2. 如果iframe标签没有id或者name,但能够通过页面上确定其是第几个(也就是通过index来定位iframe,index是从0开始的):driver.switchTo().frame(0);
  3. 还可以通过xpath的方式来定位iframe,写法如下:
    1. WebElement iframe = driver.findElement(By.xpath("//iframe[@name='aa']"));
    2.  driver.switchTo().frame(iframe); 
    public void testIFrame(){
        driver.findElement(By.id("user")).sendKeys("test");
        driver.switchTo().frame("aa");
        driver.findElement(By.id("user")).sendKeys("iframe test");
        driver.switchTo().defaultContent();//返回顶层frame
        driver.findElement(By.id("user")).sendKeys("---new test");
    }

 6、多窗口切换

  1. gettWindowHandles:取得driver所打开的所有的页面的句柄
  2. witchTo是指切换到相应的窗口中去,window中的参数是指要切过去的窗口的句柄
    public void testMultiWindow(){
        driver.findElement(By.id("user")).sendKeys("test");
        String handle = driver.getWindowHandle();//获取当前窗口的句柄
        System.out.println(handle);
        WebElement element = driver.findElement(By.className("open"));
        element.click();
        Set<String> handles = driver.getWindowHandles();
        for(String s : handles)
        {
            if(!s.equals(handle))
            {
                System.out.println(s);
                driver.switchTo().window(s);
                driver.findElement(By.id("kw")).sendKeys("glen");
            }
        }

        driver.switchTo().window(handle);
        driver.findElement(By.id("user")).sendKeys("---new test");
    }

 

时间: 2024-10-15 04:38:53

Selenium2(WebDriver)总结(五)---元素操作进阶(常用类)的相关文章

黑马程序员 五、异常处理和常用类)

Java帮帮-IT资源分享网  五.黑马程序员-异常处理和常用类 第五篇  1.异常 异常:就是不正常,是指程序在运行时出现的不正常情况.其实就是程序中出现的问题. 这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有 问题的名称.有问题的描述等多个属性信息存在.当出现多属性信息最方便的方式就是将这 些信息进行封装.异常就是 java 按照面向对象的思想将问题进行对象封装.这样就方便于 操作问题以及处理问题. 出现的问题有很多种,比如角标越界,空指针等都是.就对这些问

Selenium2(WebDriver)总结(三)---元素定位方法

 元素定位的重要性不言而喻,如果定位不到元素谈何操作元素呢,webdrvier提供了很多种元素定位方法,如ID,Name,xpath,css,tagname等. 例如需要定位如下元素: <input class="input_class" type="text" name="passwd" id="passwd-id" />  By.id: WebElement element = driver.findEleme

Selenium2(WebDriver)总结(四)---基本元素操作

 WebDriver提供了常用的WEB控件的操作方法,比如:按钮.输入框.超链接等,废话不多说,直接上代码: 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.support.ui

selenium2(WebDriver) API

1.1  下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide:  http://seleniumhq.org/docs/ 官方API:  http://selenium.googlecode.com/git/docs/api/java/index.html 1.2.1  用webdriver打开一个浏览器 打开firefox浏览器:         WebDrive

DOM操作一些常用的属性汇总

 这篇文章主要介绍了DOM操作一些常用的属性汇总,总结的相当全面,附上示例,是篇非常不错的学习提高DOM操作的文章,推荐给大家.     1.DOM:文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 2.DOM的一些常用的属性 2.1 通过ID获取元素 (1)语法:   代码如下: document.getElementById("id");   (2)作用:id就

Javascript操作DOM常用API总结

转载自:http://www.cnblogs.com/lrzw32/p/5008913.html Javascript操作DOM常用API总结 文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识. 基本概念 在讲解操作DOM的api之前,首先我们来复习一下一些基本概念,这些概念是掌握api的关键,必须理解它们. Node类型 DOM1级定义了一个Node接口,该接口由DOM中所有节点类型实现

Linux中RPM文件操作的常用命令总结_Linux

简介 众所周知在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的"添加/删除程序",但是功能又比"添加/删除程序"强很多,它就是Red Hat Package Manager(简称RPM).本文介绍的就是关于Linux中RPM文件操作的常用命令,下面话不多说,来一起看看吧. 一.RPM 安装操作 命令: rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包: rpm -iv e

PHP多维数组元素操作类的方法_php实例

我的框架里面一个多维数组元素操作类,主要用于读取数组中配置数据,可以通过字符串节点的方式:a.b.c 来获取和设置元素,以及多维数组的覆盖,有需求的可以参考下吧! <?php /** * Created by PhpStorm. * User: ZHOUZ * Date: 14-5-25 * Time: 下午5:32 */ namespace Snail\Component; /** * 多维数组节点读写 * Class Node * @package Snail\Component */ cl

这五种操作会让你的网站被降权

摘要: 容易导致网站被降权的五种操作: 第一. 很散漫的进行网站优化 这个通常情况下新手的触犯比较多,新手以为只要自己网站上线后再有时间来慢慢修改.可他们却不知道网站在被百度 容易导致网站被降权的五种操作: 第一.   很散漫的进行网站优化 这个通常情况下新手的触犯比较多,新手以为只要自己网站上线后再有时间来慢慢修改.可他们却不知道网站在被百度收录之前就一定要把重要的信息给改完善了才行.这个好比女人化妆一样,当纯天然的看起来没那么的漂亮,一旦化起妆来就成了美女.那么这化妆的前前后后的性质就改变了