Я также столкнулся с той же проблемой, и после поиска и проб разных комбинаций я смог заставить Selenium загружать определенный профиль при использовании RemoteWebDriver.
Конфигурация сетки
Я запускаю HUB с помощью командного файла, содержащего следующее
"C:\Program Files (x86)\Java\jre6\bin\java.exe" -jar C:\Downloads\Selenium\selenium-server-standalone-2.20.0.jar -role hub -maxSession 50 -Dwebdriver.firefox.profile=Selenium
Я запускаю один или несколько узлов, используя пакетный файл, содержащий следующее (каждый узел имеет уникальный номер порта):
"C:\Program Files (x86)\Java\jre6\bin\java.exe" -jar selenium-server-standalone-2.20.0.jar -role node -hub http://127.0.0.1:4444/grid/register -browser browserName=firefox,platform=WINDOWS,version=11.0,maxInstances=2 -maxSession 2 -port 5555 -Dwebdriver.firefox.profile=Selenium
Ключ здесь - последняя часть этих команд, которая должна соответствовать имени созданного вами пользовательского профиля.
Код для создания экземпляра WebDriver
private readonly Uri _remoteWebDriverDefaultUri = new Uri("http://localhost:4444/wd/hub/");
private IWebDriver CreateFireFoxWebDriver(Uri remoteWebDriverUri)
{
var desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.SetCapability(CapabilityType.BrowserName, "firefox");
desiredCapabilities.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Windows));
desiredCapabilities.SetCapability(CapabilityType.Version, "11.0");
var drv = new RemoteWebDriver(remoteWebDriverUri ?? _remoteWebDriverDefaultUri, desiredCapabilities);
return drv;
}
ПРИМЕЧАНИЕ: Возможности должны соответствовать тем из узлов, которые вы используете в сетке.
Затем вы можете вызвать этот метод, передавая Uri хаба, или значение null по умолчанию для localhost.