Selenium 2(WebDriver)まとめ(一)---ブラウザの起動、プロフィルの設定&アドイン

21444 ワード

本論文では、selenium 2/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を起動しても、これらのプラグインはありません)が、システム自体にプラグインが必要か、またはデバッグが必要な場合があります.以下の例では、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:\Users\cloudchen\AppData\Local\Mozila\Firefox\Profiles'をあるディレクトリにコピーします.
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:プラグインや他のドンドンが読み込まれていない場合は、プロフィルフォルダの下にプラグイン情報が含まれているかどうかを確認することができます.
 
三、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     }
また、set Propertyの方式を使いたくない場合は、chromedriver.exeを「C:\Windows\System 32」の経路下や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つの領域の保護モードをオフにする必要があります.
Selenium2(WebDriver)总结(一)---启动浏览器、设置profile&加载插件
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     }