Почему Selenium всегда создает временные профили Firefox с помощью Web Driver, хотя я сказал ему использовать существующий?Почему Selenium всегда создает временные профили Firefox с помощью Web Driver?
Согласно this answer, невозможно остановить Selenium от создания временных профилей Firefox с помощью Web Driver. Но с хронографом я могу добиться этого. Итак, почему он отличается от 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 устанавливает расширение (webdriver.xpi) для связи с firefox, тогда как chromedriver.exe используется для взаимодействия с хром.
Если это причина, в версии 3.0 webdriver использует geckodriver.exe для связи с firefox. Итак, после версии 3.0 webdriver создаст временный профиль для firefox?
Update: Сегодня я играл с WebDriver об 3.0+ и обнаружили, что последняя версия с legacymode выключения продолжает генерировать временный профиль с именем, как rust_mozprofile.wUqPXh48avDR. Мое предположение это временный профиль создается geckodriver.exe, который написан в Rust
я использовал chromedriver 3 года назад и не уверен, что chromedriver.exe также генерирует такой тип временного файла. Ожидание ответа экспертов ...
Итак, теоретически, если бы у меня было 10 предварительно подготовленных профилей, я мог бы использовать их одновременно для запуска 10 браузеров без их копирования, верно? – Rasel
Было бы неплохо, если бы селен удалял эти профили из tmp при завершении. – glyph