5.7 WebDriver API实例讲解

      本节主要详细描述WebDriver的常用API使用方法。

1.访问某网页地址

      被测试网页的网址:http://www.sogou.com。

      Java语言版本的API实例代码:

      方法1:

public static void visitURL(){
    String baseUrl="http://www.sogou.com";
    driver.get(baseUrl);
}

     方法2:

public static void visitURL(){
    String baseUrl="http://www.sogou.com";
    driver.navigate().to(baseUrl);    //访问sogou首页
}

2.返回上一个访问的网页(模拟单击浏览器的后退功能)

      被测试网页的网址:http://www.sogou.com, http://www.baidu.com

      Java语言版本的API实例代码:

public static void visitRecentURL(){
    String url1="http://www.sogou.com";
    String url2="http://www.baidu.com";
    driver.navigate().to(url1);    //先访问sogou首页
    driver.navigate().to(url2);    //再跳转访问Baidu首页
    driver.navigate().back();     //返回到上一次访问的sogou首页页面

3.从上次访问网页前进到下一个网页(模拟单击浏览器的前进功能)

      被测试网页的网址:http://www.sogou.com, http://www.baidu.com

      Java语言版本的API实例代码:

public static void visitNextURL(){
    String url1="http://www.sogou.com";
    String url2="http://www.baidu.com";
    driver.navigate().to(url1);    //先访问sogou首页
    driver.navigate().to(url2);    //再跳转访问Baidu首页
    driver.navigate().back();     //返回到上一次访问的sogou首页页面
    driver.navigate().forward();  //从sogou首页页面跳转到Baidu首页
}

4.刷新当前网页

      被测试网页的网址:http://www.sogou.com, http://www.baidu.com

      Java语言版本的API实例代码:

public static void freshCurrentPage(){
    String url="http://www.sogou.com";
    driver.navigate().to(url);    //访问sogou首页
    driver.navigate().refresh();  //刷新当前页面
}

5.操作浏览器窗口

      被测试网页的网址:http://www.sogou.com。

      Java语言版本的API实例代码:

public static void operateBrowser(){
    //声明一个Point对象,两个150表示浏览器的位置相对于屏幕左上角(0,0)的横坐标举例和纵坐标举例
    Point point=new Point(150,150);
    //声明Dimension对象,两个500表示浏览器窗口的长度和宽度
    Dimension dimension=new Dimension(500,500);
    //setPosition方法表示设定浏览器在屏幕上的位置为point对象的坐标(150,150),在某些版本浏览器下次方法失效
    driver.manage().window().setPosition(point);
    //setSize方法表示设定浏览器窗口的大小为长为500个单位和宽为500个单位
    driver.manage().window().setSize(dimension);
    //getPosition方法表示获取浏览器在屏幕的位置,在某些浏览器版本下次方法失效
    System.out.println(driver.manage().window().getSize());
    //maximize方法表示将浏览器窗口最大化
    driver.manage().window().maximize();
    driver.get("http://www.sogou.com");
}

 6.获取页面的Title属性

       被测试网页的网址:http://www.sogou.com。

      Java语言版本的API实例代码:

public static void getTitle(){
    driver.get("http://www.sogou.com");
    //调用driver的getTitle方法获取页面的Title属性
    String title=driver.getTitle();
    //打印从当前页面获取的Title内容
    System.out.println(title);
 }

7.获取页面的源代码

public static void getPageSource(){
    driver.get("http://www.sogou.com");
    String pageSource=driver.getPageSource();
    System.out.println(pageSource);
}

8.获取当前页面的URL地址

public static void getCurrentPageUrl(){
    driver.get("http://www.sogou.com/");
    String CurrentPageUrl=driver.getCurrentUrl();
    System.out.println(CurrentPageUrl);
}

9.在输入框中清除原有的文字内容

public static void clearInputBoxText(){
    WebElement input=driver.findElement(By.id("text"));
    input.clear();
}

10.在输入框中输入指定内容

public static void clearInputBoxText(){
    String inputString="测试工程师指定的输入内容";
    WebElement input=driver.findElement(By.id("text"));
    input.clear();  //首先清除文本框中的原有内容,防止原有内容影响测试结果,建议都清除掉
    input.sendKeys(inputString);  
}

 11.单击按钮

public static void clickButton(){
    WebElement button=driver.findElement(By.id("button"));
    button.click();
}

12.双击某个元素

public static void doubleClick(){
    WebElement inputBox=driver.findElement(By.id("inputBox"));
    Actions builder=new Actions(driver);
    builder.doubleClick(inputBox).build().perform();
}

13.操作单选下拉列表

    被测试的网页Demo1下载

public static void operateDropList(){  
        driver.get("file:///D:/%E6%95%99%E5%AD%A6/2015-2016-2/%E8%AF%BE%E4%BB%B6/w9/SeleniumDemo/files/Demo1/demo.html");
        Select dropList=new Select(driver.findElement(By.name("select")));
        System.out.println("此下拉列表是否允许多选:"+dropList.isMultiple());
        
        System.out.println("当前选中的选项文本是:"+dropList.getFirstSelectedOption().getText());
        
        dropList.selectByIndex(3);
        System.out.println("下拉列表第3项是:"+dropList.getFirstSelectedOption().getText());
        
        dropList.selectByValue("saab");
        System.out.println("希望选中值为saab,当前选中的选项文本是:"+dropList.getFirstSelectedOption().getText());
        
        dropList.selectByVisibleText("奥迪");
        System.out.println("希望选中文字为奥迪,当前选中的选项文本是:"+dropList.getFirstSelectedOption().getText());
    }

14.检查单选列表的选项文字是否符合期望

public static void checkSelectText(){
        driver.get("file:///D:/%E6%95%99%E5%AD%A6/2015-2016-2/%E8%AF%BE%E4%BB%B6/w9/SeleniumDemo/files/Demo1/demo.html");
        Select dropList=new Select(driver.findElement(By.name("select")));
        List<String> expect_options=Arrays.asList((new String[]{"沃尔沃","萨博","欧宝","奥迪"}));
        List<String> actual_option=new ArrayList<String>();
        for(WebElement option:dropList.getOptions())
        {
            actual_option.add(option.getText());
        }
        if(expect_options.equals(actual_option))
            System.out.println("一致");
        else
            System.out.println("不一致");
    }

15.操作多选的选择列表

public static void operateMultipleOptionDropList(){
        driver.get("file:///D:/%E6%95%99%E5%AD%A6/2015-2016-2/%E8%AF%BE%E4%BB%B6/w9/SeleniumDemo/files/Demo1/demo.html");
        Select dropList=new Select(driver.findElement(By.name("fruit")));
        System.out.println("此下拉列表是否允许多选:"+dropList.isMultiple());
        
        dropList.selectByIndex(3);
        dropList.selectByValue("shanzha");
        dropList.selectByVisibleText("荔枝");
        sleep(3000);
        dropList.deselectAll();
        sleep(3000);
        
        dropList.selectByIndex(3);
        dropList.selectByValue("shanzha");
        dropList.selectByVisibleText("荔枝");
        sleep(3000);
        dropList.deselectByIndex(3);
        sleep(3000);
        dropList.deselectByValue("shanzha");
        sleep(3000);
        dropList.deselectByVisibleText("荔枝");
    }

 

posted @ 2016-05-02 23:24  RunningYY  阅读(714)  评论(0编辑  收藏  举报