web-dev-qa-db-ja.com

SeleniumWebDriverを使用してFirefoxでプロファイルを作成する方法

このようなものを書くとき:

FirefoxProfile ffprofile = new FirefoxProfile(new File("D:\\Selenium"));

新しいプロファイルを作成しているということですか? Firefoxのプロファイルセクションで新しいプロファイルを見つけることができないためです。

だから今私の質問は、Firefoxブラウザの新しいプロファイルを作成するにはどうすればよいですか?

6
Niyati

あなたが述べたメソッド呼び出しは、プロファイル情報の指定されたディレクトリからJavaプロファイルオブジェクトを作成し、WebDriverインスタンスを介してFirefoxに渡されるだけです。

Firefoxにドライバを永続化させ、プロファイルマネージャから利用できるようにするには、ファイルprofiles.iniを編集する必要があります。これは私の(Windows 7)マシンで次の場所にありました。

%APPDATA%\ Roaming\Mozilla\Firefox

このフォルダ内のProfilesディレクトリには、既存のFirefoxプロファイルのストアが含まれています。これは、既存のプロファイルを新しいプロファイルのテンプレートとして使用する場合にコピーするのに非常に便利です。

マイレージはOSによって異なりますが、クイック検索で見つけることができると思います。次に、例を使用して、このファイルに以下を追加します(ヘッダーのNは次の未使用のプロファイル番号です)。

[ProfileN]
Name=Selenium
IsRelative=0
Path=D:\Selenium

これにより、Firefox Profile Managerがプロファイルをロードし、このプロファイルを使用してFirefoxを手動で起動して構成またはテストできるようになります。これは、私がやりたいと思っていることです。

この方法で名前付きプロファイルを作成したら、次のようにSeleniumのドライバーに割り当てることができます。

ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("Selenium");
WebDriver driver = FirefoxDriver(profile);

ここで、「Selenium」は、profiles.iniファイルのNameプロパティと同じです。

6
Dave Birch

次のコードは、(提供されたファイルに基づいて)Firefoxプロファイルを作成し、このプロファイルがロードされた新しいFFWebドライバーインスタンスを作成します。

FirefoxProfile profile = new FirefoxProfile(new File("D:\\Selenium Profile"));                  
WebDriver driver = new FirefoxDriver(profile);

たぶん、FFプロファイルマネージャーの 公式サポートページ またはここを見てください: SeleniumのカスタムFirefoxプロファイル FFプロファイルに関するアイデアを入手してください。

4
Michal

Seleniumを使用してFirefoxのプロファイルを作成することはできません。あなたができることは、Firefoxで利用可能なプロファイルからWebドライバー用のFirefoxプロファイルを作成することです。 FirefoxのプロファイルWordはここでは少しあいまいに聞こえます。

ブラウザでFirefoxプロファイルを作成するには、詳細について Mozillaサポート ページを参照してください。

1
Manu

これが、Geckodriverを使用したSelenium3による方法です。

  • Firefoxコマンドラインインターフェイスを使用してプロファイルを作成します

    firefox.exe -CreateProfile "profile_name profile_dir"(Javaでは、Runtime.getRuntime()。exec関数によってこのランタイムを実行します)

  • Firefoxオプションで-profile引数を設定します

    FirefoxOptions options = new FirefoxOptions();
    options.addArguments("-profile", <profile_dir>);
    driver = new FirefoxDriver(options);
    
0
Mon Dev