2016-07-21 4 views
1

にFirefoxのプロファイルを設定するにはどうすればこのように新しいドライバを作成しません:私は、既存のドライバインスタンスにプロファイルを追加したい既存のドライバオブジェクト

WebDriver driver = new FirefoxDriver(profile);

。どうすればこれを達成できますか?

答えて

1

はこれを試してみてください:

ProfilesIni profile = new ProfilesIni();  
FirefoxProfile myprofile = profile.getProfile("profile");  
WebDriver driver = new FirefoxDriver(myprofile); 
+0

に役立ちますが、あなたが同じ名前のFirefoxブラウザでプロファイルを作成したことがありますか? –

+0

WebDriverドライバ=新しいFirefoxDriver(myprofile); - これは、既存のドライバインスタンスを上書きします。私は上書きしたくない。私は拡張したい。 – gartenkralle

2

セレンはと毎回一時的な匿名のプロファイルを作成し、それが空の引数でFirefoxDriverコンストラクタを呼び出すたびドライバのインスタンスに関連付けして、あなたの拡張やユーザー設定を追加する必要がありませんこれは一時的なプロファイルです。

WebDriver driver = new FirefoxDriver(); 

これを克服するために、カスタムプロファイルを作成し、

ProfilesIni profile = new ProfilesIni(); 
FirefoxProfile ffprofile = profile.getProfile("custom-profile"); 
WebDriver driver = new FirefoxDriver(ffprofile); 

によってwebdriverをオブジェクトをインスタンス化するたびにあなたの質問に戻って来て、同じプロファイルを関連付ける必要があります。

あなたは一時的なプロファイルからカスタムプロファイルに切り替える必要がありますが、別のカスタムプロファイルを関連付けることができない既存のドライバインスタンスに対してこれを行う方法はありません。

カスタムプロファイルを作成したら、ドライバインスタンスをinstantiateするたびに作成するすべての一時ファイルをクリーンアップするように、必ずdriver.quitメソッドを呼び出すようにしてください。

希望これは