なぜ私は既存のものを使用するように言ったが、SeleniumはWebドライバを使用して一時的なFirefoxプロファイルを作成するのですか?なぜSeleniumはウェブドライバを使用して一時的なFirefoxプロファイルを作成するのですか?
this answerによると、Webドライバを使用してSeleniumが一時的なFirefoxプロファイルを作成するのを止めることはできません。しかし、クロムドライバーで私はこれを達成することができます。だから、なぜFirefoxとは違うのですか?私はFirefoxProfile.csにSelenium repoのをチェックし、次のコードsnipetがプロファイルをコピーするために使用された---
public void WriteToDisk()
{
this.profileDir = GenerateProfileDirectoryName();
if (!string.IsNullOrEmpty(this.sourceProfileDir))
{
FileUtilities.CopyDirectory(this.sourceProfileDir, this.profileDir);
}
else
{
Directory.CreateDirectory(this.profileDir);
}
this.InstallExtensions();
this.DeleteLockFiles();
this.DeleteExtensionsCache();
this.UpdateUserPreferences();
}
しかしchormeのためにはそのような事がありません。
webdriverはfirefoxと通信するための拡張子(webdriver.xpi)をインストールし、chromedriver.exeはchromeとのやりとりに使用するためですか?
これが理由であれば、バージョン3.0ではwebdriverがgeckodriver.exeを使ってfirefoxと通信しています。だからバージョン3.0の後、webdriverはFirefox用の一時プロファイルを作成しますか?
更新: 今日はwebdriverをするのV 3.0+で演奏しlegacymodeをオフにし、最新バージョンはまだrust_mozprofile.wUqPXh48avDRという名前の一時的なプロファイルを生成していることがわかりました。私の仮定は、この一時的なプロファイルが、私は3年前とではないことを確認chromedriver.exeも、一時ファイルのようなタイプを生成chromedriverに使用されてきたRust
で書かれているgeckodriver.exeによって生成されます。専門家の回答が期待されます...
理論的には、あらかじめ作成されたプロファイルが10個ある場合、それらをコピーしないで10個のブラウザを起動するために同時に使用できますか? – Rasel
完了したらセレンがtmpからこれらのプロファイルを削除するといいでしょう。 – glyph