2017-02-07 12 views
1

私はSeleniumとWebDriverを非常に新しくしています。WebDriverを使用してFirefoxブラウザを開く

FirefoxのブラウザがWebDriverを使用して起動される方法に関しては、私が間違っているところを教えてください。

次のコード行は、FirefoxのWebブラウザが開かれるたびに新しいセッションIDでFirefoxブラウザを起動します。

WebDriver driver = new FirefoxDriver();

私の質問は以下のとおりです。

  • webdriverを、常にアドオンなし/なしのカスタマイズと、新しくインストールしたFirefoxなどの新鮮なFirefoxの(開くことを何らかの理由(セキュリティ/パフォーマンスの問題)があります)上記のコードが実行されるたびに?
  • 新しい、一時的なFirefoxプロファイルが作成されるたびにそのことを意味しますか?
  • FirefoxのセッションIDはFirefoxプロファイルと同じですか、つまりFirefoxが終了するまでアクティブな閲覧セッションを意味しますか?

私に説明してください。私は非常に困惑しています。

+1

私は詳細があると思いますあなたが使っているSelenium/WebDriverのバージョンに依存しています。私の経験から(Seleinum 1と2)、これは次のようなものです:セッションが開始されるたびに、Firefoxプロファイル(デフォルトプロファイル、指定されていない場合)あなたのシステムの一時ディレクトリ。おそらく、Seleniumがクラッシュした場合、手動ブラウジングに使用する可能性のあるプロファイルには影響しません.Firefox seはどういう意味ですか? ssion id_?それはどこに現れますか? –

+0

私はここから_session id_を得ました:[リンク](http://stackoverflow.com/q/36476111/7529915)。これは_FirefoxセッションIDですか? – dheer

答えて

0

それはこのようなものですセレン2.xxのと(Linuxの場合)のFirefox 45.6esrについて:

セッションはFirefoxのプロファイルの新しいコピーがシステムの一時ディレクトリに作成されて起動されるたびに。指定されていない場合(例えば、コンストラクタFirefoxDriver(FirefoxBinary binary, FirefoxProfile profile))、デフォルトプロファイルが使用されます。 いずれにしても、プロファイルはにコピーされます。

おそらく、Seleniumがクラッシュした場合、手動ブラウジングで使用する可能性のあるプロファイルには影響しません。さらに、WebDriver.quit()を呼び出すと、一時的なプロファイルが削除されます。

したがって、各セッションには一意のIDと固有の一時プロファイルがあります。一時的なプロファイルの名前はセッションIDから派生していないことに注意してください。

他のSeleniumとFirefoxのバージョン、さらにはオペレーティングシステム(少なくともWindows)でも同じです。 、見つける、このコードスニペットを使用するには:

FirefoxDriver driver = new FirefoxDriver(); 
System.out.println(driver.getSessionId()); 

String tmpDir = System.getProperty("java.io.tmpdir"); 
System.out.println(tmpDir); 

File dir = new File(tmpDir); 
String[] files = dir.list(); 
for (String file : files) { 
    System.out.println(file); 
} 

出力のようなもの(最初のものはセッションIDで、最後の1は、一時的なFirefoxのプロファイルを持つディレクトリの名前です:

60bdbf4a-f4b3-4e71-a6be-9e3ad28a3b09 
[...] 
/tmp 
[...] 
anonymous8971467451928507515webdriver-profile 
関連する問題