Как запустить ChromeDriver.exe без лицензионного соглашения?

Я учусь использовать Selenium (v2.20), чтобы опередить некоторых наших программистов, которые скоро будут создавать тесты для браузера. Я хотел бы раскрыть подводные камни, прежде чем они попадут туда, и я наткнулся на одну.

Когда я создаю свой ChromeDriver, он всегда вызывает "Google Chrome EULA" и представляет две кнопки: "Принять и запустить" и "Отмена". Поскольку я хочу, чтобы это был автоматический тест, о том, чтобы пользователь нажимал кнопку, не может быть и речи.

Я посмотрел список командных переключателей Chromium, но не нашел ни того, что сработало, ни того, которое упоминало EULA. Тест работает нормально, если я (в точке останова) нажимаю "Принять и запустить" и затем продолжаю код.

Код, вплоть до строки, которая вызывает проблему, находится ниже:

using (var driverService = ChromeDriverService.CreateDefaultService(@"C:\Apps\ChromeDriver\"))
{
    driverService.Start();

    // This line pops up the EULA
    IWebDriver driver = new ChromeDriver(@"C:\Apps\ChromeDriver\");

    // rest of test...
}

Кто-нибудь еще сталкивался с этой проблемой? Если да, то как ты решил это?

ОБНОВЛЕНИЕ 4/4/12
Я просто запустил один и тот же код на своем компьютере на работе, и у меня все получилось без запуска лицензионного соглашения (в соответствии с опытом Slanec). Это приводит меня к мысли, что причина заключается в окружающей среде. Я смотрю на различия между двумя системами (обе Win7 x64), чтобы определить причину. Я обновлю, как только у меня будет больше информации.

Большое спасибо,

-Seth

2 ответа

Решение

В случае, если у вас все еще есть эта проблема, ошибка возникает, потому что вы открываете совершенно новый экземпляр браузера Chrome каждый раз, когда запускаете тест, тем самым вызывая лицензионное соглашение. Если вы скопируете профиль chrome по умолчанию в выбранное вами место, а затем добавите флаг "--user-data-dir=yourcustomlocation" в ChromeOptions, вы можете обойти лицензионное соглашение и открыть вместо него существующий профиль.

ChromeOptions crOptions = new ChromeOptions();
crOptions.AddArgument(@"--user-data-dir=C:\custom location"); 
return new ChromDriver(crOptions);

Шаги:

  1. Скопируйте ваш chromedriver.exe в Windows/System32
  2. Теперь перейдите в папку Chrome, для меня это: C:\Users\"%USERNAME%"\AppData\Local\Google\Chrome\
  3. Есть файл master_preferences.
  4. Откройте его и ложный вариант EULA.

Это работает для меня, надежда будет работать для всех вас.

Другие вопросы по тегам