zoukankan      html  css  js  c++  java
  • Selenium2(WebDriver)总结(一)---启动浏览器、设置profile&加载插件

    转载来自:http://www.cnblogs.com/puresoul/p/4251536.html


    本文主要记录下在使用selenium2/webdriver时启动各种浏览器的方法、以及如何加载插件、定制浏览器信息(设置profile)等



    环境搭建可参考我的另一篇文章:http://www.cnblogs.com/puresoul/p/3483055.html


    一、Driver下载地址:


      http://docs.seleniumhq.org/download/


    二、启动firefox浏览器(不需要下载驱动,原生支持)


    1、firefox安装在默认路径下:




    1     //启动默认安装路径下的ff
    2     public void StartFireFoxByDefault(){
    3         System.out.println("start firefox browser...");
    4         WebDriver driver = new FirefoxDriver();      //直接new一个FirefoxDriver即可
    5         Navigation navigation = driver.navigate();
    6         navigation.to("http://www.baidu.com/");
    7         System.out.println("start firefox browser succeed...");        
    8     }


    2、firefox未安装在默认路径下:




    1 public static void StartFireFoxNotByDefault(){
    2         System.out.println("start firefox browser...");
    3         System.setProperty("webdriver.firefox.bin",     //指定firefox的安装路径
    4                 "D:/Program Files/Mozilla Firefox/firefox.exe");  
    5         WebDriver driver = new FirefoxDriver();
    6         Navigation navigation = driver.navigate();
    7         navigation.to("http://www.baidu.com/");
    8         System.out.println("start firefox browser succeed...");        
    9     }


    3、启动firefox时加载插件:


      首先,要知道我们为什么需要加载插件?原因是webdriver在启动浏览器时,启动的一个干净的没有任务、插件及cookies信息的浏览器(即使你本机的firefox安装了某些插件,webdriver启动firefox也是没有这些插件的),但是有可能被测系统本身需要插件或者需要调试等等,此时可以用如下方法在启动firefox时加载插件,下面示例加载firebug插件:


     




     1     public static void StartFireFoxLoadPlugin(){
     2         System.out.println("start firefox browser...");
     3         System.setProperty("webdriver.firefox.bin", 
     4                 "D:/Program Files/Mozilla Firefox/firefox.exe");
     5         File file = new File("files/firebug-2.0.7-fx.xpi");
     6         FirefoxProfile profile = new FirefoxProfile();
     7         try {
     8             profile.addExtension(file);
     9         } catch (IOException e) {
    10             e.printStackTrace();
    11         }
    12         profile.setPreference("extensions.firebug.currentVersion", "2.0.7");
    13         //active firebug extensions
    14         profile.setPreference("extensions.firebug.allPagesActivation", "on");    
    15         WebDriver driver = new FirefoxDriver(profile);
    16         driver.get("http://www.baidu.com");
    17         System.out.println("start firefox browser succeed...");    
    18     }


     


    4、启动firefox时设置profile:


      上面提到过webdriver启动firefox时是启动一个完全新的浏览器,我们除了可以使用上面提到的方法定制插件,webdriver还可以对profile进行定制(在firefox地址栏中输入about:config,可以查看firefox的参数),下面设置代理和默认下载路径:




     1     public static void StartFireFoxByProxy(){
     2         String proxyIp = "10.17.171.11";
     3         int proxyPort = 8080;
     4         System.out.println("start firefox browser...");
     5         System.setProperty("webdriver.firefox.bin", 
     6                 "D:/Program Files/Mozilla Firefox/firefox.exe");
     7         
     8         FirefoxProfile profile = new FirefoxProfile();
     9         //设置代理参数
    10         profile.setPreference("network.proxy.type", 1);
    11         profile.setPreference("network.proxy.http", proxyIp);
    12         profile.setPreference("network.proxy.http_port", proxyPort);
    13         
    14         //设置默认下载路径
    15         profile.setPreference("browser.download.folderList", 2);
    16         profile.setPreference("browser.download.dir", "D:\");
    17         
    18         WebDriver driver = new FirefoxDriver(profile);
    19         driver.get("http://www.baidu.com");
    20         
    21         System.out.println("start firefox browser succeed...");    
    22     }


     5、启动本机器的firefox配置: 


      每次启动如果都像上面那样在代码里面配置profile比较麻烦,可以使用下面的方法启动本机器的firefox的配置,换句话说就是我们可以事先配置本机的firefox然后用webdriver启动它,这样本机上的firefox安装了什么插件都可以直接使用了,不需要在配置profile:




     1     public static void StartLocalFirefox(){
     2         System.out.println("start firefox browser...");
     3         System.setProperty("webdriver.firefox.bin", 
     4                 "D:/Program Files/Mozilla Firefox/firefox.exe");
     5         ProfilesIni pi = new ProfilesIni();
     6         FirefoxProfile profile = pi.getProfile("default");
     7         WebDriver driver = new FirefoxDriver(profile);
     8         driver.get("http://www.baidu.com/");
     9         System.out.println("start firefox browser succeed...");    
    10     }


    6、如果在机器B上要启动机器A上的firefox配置,可以先导出A的配置,然后加载:


    1、将A机器上的Profiles文件夹”C:UserscloudchenAppDataLocalMozillaFirefoxProfiles”给拷贝出来到某个目录


    2、代码:




     1     public static void StartFireFoxByOtherConfig(){
     2         System.out.println("start firefox browser...");
     3         System.setProperty("webdriver.firefox.bin", 
     4                 "D:/Program Files/Mozilla Firefox/firefox.exe");        
     5         File file = new File("files\lg6mie1i.default");        //profiles文件目录,这里我是放在工程目录下的files文件夹下
     6         FirefoxProfile profile = new FirefoxProfile(file);    
     7         WebDriver driver = new FirefoxDriver(profile);
     8         driver.get("http://www.baidu.com");        
     9         System.out.println("start firefox browser succeed...");    
    10     }


    PS:如果插件或其它东东未加载成功,可以检查下profile文件夹下是否包含插件信息。


     


    三、启动chrome浏览器


     1、启动chrome需要chromedriver的驱动:




    1     public static void StartChrome(){
    2         System.out.println("start firefox browser...");        
    3         System.setProperty("webdriver.chrome.driver", "files\chromedriver.exe");  //指定驱动路径
    4         WebDriver driver = new ChromeDriver();
    5         driver.get("http://www.baidu.com/");
    6         System.out.println("start firefox browser succeed...");        
    7     }


      另,如果不想用setProperty的方式,可以将chromedriver.exe 放在”C:WindowsSystem32”路径下或者path可以找到的路径下并重启电脑即可。


    2、加载插件:




     1     public static void StartChromeLoadPlugin(){
     2         System.out.println("start firefox browser...");
     3         System.setProperty("webdriver.chrome.driver", "files\chromedriver.exe");
     4         File file = new File ("files\youtube.crx");
     5         ChromeOptions options = new ChromeOptions();
     6         options.addExtensions(file);
     7         WebDriver driver = new ChromeDriver(options);
     8         driver.get("http://www.baidu.com/");
     9         System.out.println("start firefox browser succeed...");    
    10     }


    3、设置profile: 未完待续 ...


     


     


    四、启动IE浏览器


    1、IE启动和chrome类似也需要下载相应的驱动:




    1     public static void StartIE(){
    2         System.out.println("start firefox browser...");        
    3         System.setProperty("webdriver.ie.driver", "files\IEDriverServer.exe");
    4         WebDriver driver = new InternetExplorerDriver();
    5         driver.get("http://www.baidu.com/");
    6         System.out.println("start firefox browser succeed...");        
    7     }


    2、IE下没有插件加载


    3、IE的放大比例为要设置100%


    4、启动IE时,需关闭如下图中4个区域的保护模式:






    5、对于第4点提到的关闭保护模式,还可以使用代码关闭:




     1     //启动IE浏览器并关闭保护模式
     2     public static void StartIEAndCloseProtectedMode(){
     3         System.out.println("start firefox browser...");        
     4         System.setProperty("webdriver.ie.driver", "files\IEDriverServer.exe");
     5         DesiredCapabilities dc = DesiredCapabilities.internetExplorer();
     6         dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
     7     
     8         //IE默认启动保护模式,要么手动在浏览器的设置中关闭保护模式,要么在代码中加上这一句,即可
     9         dc.setCapability("ignoreProtectedModeSettings", true);
    10         WebDriver driver = new InternetExplorerDriver(dc);
    11         driver.get("http://www.baidu.com/");
    12         System.out.println("start firefox browser succeed...");        
    13     }
  • 相关阅读:
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Maximum Depth of Binary Tree
    Sharepoint 2013 创建TimeJob 自动发送邮件
    IE8 不能够在Sharepoint平台上在线打开Office文档解决方案
    TFS安装与管理
    局域网通过IP查看对方计算机名,通过计算机名查看对方IP以及查看在线所有电脑IP
    JS 隐藏Sharepoint中List Item View页面的某一个字段
    SharePoint Calculated Column Formulas & Functions
    JS 两个一组数组转二维数组
  • 原文地址:https://www.cnblogs.com/graceting/p/5034025.html
Copyright © 2011-2022 走看看