Почему Selenium всегда создает временные профили Firefox с помощью веб-драйвера, хотя я сказал использовать существующий?
Согласно этому ответу невозможно запретить Selenium создавать временные профили Firefox с помощью веб-драйвера. Но с chromedriver я могу добиться этого. Итак, почему это отличается для Firefox. Я проверил FirefoxProfile.cs в Selenium repo и обнаружил, что следующий фрагмент кода используется для копирования профиля ---
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 используется для взаимодействия с chrome.
Если это причина, в версии 3.0 веб-драйвер использует geckodriver.exe для связи с firefox. Итак, после версии 3.0 веб-драйвер больше не будет создавать временный профиль для Firefox?
Обновление: Сегодня я поиграл с webdriver версии 3.0+ и обнаружил, что последняя версия с выключенным режимом прежних версий по-прежнему создает временный профиль с именем rust_mozprofile.wUqPXh48avDR. Я предполагаю, что этот временный профиль создается с помощью geckodriver.exe, который написан на Ржавчина
Я использовал chromedriver 3 года назад и не уверен, что chromedriver.exe также создает временный файл такого типа. Ждем ответа от специалистов...