selenium自动化测试学习2-各个浏览器调用以及配置

一、概述

WebDriver加载浏览器,我们需要掌握主流的三个浏览器的使用,谷歌、火狐和IE。

二、基本目录结构

selenium自动化测试学习2-各个浏览器调用以及配置

其中files下存放的是相应使用的浏览器对应的driver。lib下存储的是selenium2使用的jar包。

三、三种浏览器的启动方式

1、FireFox火狐浏览器启动

实现代码如下:

package com.webdriver.selenium2;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.firefox.FirefoxDriver;
public class FireFoxDemo {
    public static void main(String[] args) {
        //实例化火狐浏览器
        WebDriver driver = new FirefoxDriver();
        //打开导航栏
        Navigation na = driver.navigate();
        //导航到百度
        na.to("http://www.baidu.com");
        //关闭浏览器
        driver.close();
        driver = null;
    }
}

 请注意selenium_webdriver是默认使用firefox来进行浏览器加载的,所以FireFox是在标准目录下,如果我们使用其他的浏览器进行加载webdriver,比如Chrom。我们此时需要先设置其chromdriver.exe的路径,然后在加载dirver。具体代码实现时要加上下面这行代码:

    System.setProperty("Webdriver.chrome.driver", "files/chromedriver.exe");

2、动态加载插件

我们知道,每打开一个网页,都会有网络的更新 变化,我们实现自动化的时候,肯定希望可以即时监控网络资源:具体指:

 

selenium自动化测试学习2-各个浏览器调用以及配置

试想一下,每打开一个网页的时候,可以即时Export网络资源文件,自动化是多么每秒的一件事情。基于这样的想法我们需要加载插件:

首先:将firebug.xpi(这个存在与firebug安装的根目录下)放到我们工程的files目录下。

其次:补充个使用firefox时非常有用的知识,叫做:about:config。

selenium自动化测试学习2-各个浏览器调用以及配置

此时如果我们想加载firebug插件,就选择extensions.firebug.currentVersion使用FirefoxProfile类下的setPreference()方法进行配置加载。具体代码实现如下:

package com.webdriver.selenium2;

import java.io.File;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
public class Demo {
    public static void main(String[] args) {

        myplug();
    }
    public static void myplug(){
        File file = new File("files:\\firebug-2.0.19-fx.xpi");
        FirefoxProfile fp = new FirefoxProfile();
        //因为不能保证插件是否可以成功安装,所以需要捕获异常
        try {
            fp.addExtension(file);
        } catch (IOException e) {
            System.out.println("IO异常"+e);
        }
        fp.setPreference("extensions.firebug.currentVersion","2.0.19" );
        WebDriver driver = new FirefoxDriver();
        Navigation na = driver.navigate();
        na.to("http://www.baidu.com");
    }
}

当然越将工作简单化,自动化做的就会越成功,如果不用代码加载浏览器插件,可以通过浏览器自身配置,直接配置得当,更是好的方法。

package com.webdriver.selenium2;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;

public class Demo01 {

    public static void main(String[] args) {
        firefox();
    }
        public static void firefox(){
            //实例化浏览器默认的所有配置
            ProfilesIni pf = new ProfilesIni();
            //加载浏览器默认的所有配置
            FirefoxProfile fpf = pf.getProfile("default");
            //实例化火狐浏览器时进行加载
            WebDriver driver = new FirefoxDriver(fpf);
            //打开导航栏
            Navigation na = driver.navigate();
            //导航到百度
            na.to("http://www.baidu.com");
            //关闭浏览器
            driver.close();
            driver = null;
}
}

此时我们再次调用firefox,希望启动浏览器的同时,插件不单只是加载进来,还应该是启动状态,此时about:config(这个非常有用)

找到这个配置extensions.firebug.allPagesActivation,将它的值设置为on,再次启动firefox时,firebug就会跟着自动启动,如果把这个配置的值设置为off,再次调用的时候就不会自动启动。

3、网络资源导出扩展

继续我们自动导出网络资源的话题,还是在about:config中进行相应的配置。我们需要配置的内容如下:

extensions.firebug.netexport.alwaysEnableAutoExport,需要把这个值置为true

extensions.firebug.netexport.defaultLogDir,这个用来配置导出的文件的存储路径

extensions.firebug.netexport.saveFiles,这个值设置为true.