Тесты Selenium запускаются при загрузке профиля несколько минут - PullRequest
0 голосов
/ 21 декабря 2018

Я просто пытаюсь выяснить, видел ли кто-то еще, что их тесты Selenium выполняются значительно медленнее (для запуска требуется более 2 минут), когда они загружают профиль в FirefoxDriver, как показано на рисунке: Selenium - профиль по умолчанию дляFirefox

Создатель вопроса из вышеупомянутого поста упоминал эту проблему в комментарии, но никогда не обновлял, исправил ли он эту проблему с медлительностью.

В какой-то момент мои тесты перестали выполняться все вместе иЯ начал получать сообщение об ошибке

org.openqa.selenium.WebDriverException: java.io.Exception: unexpected end of stream on Connection. 

Если я удаляю опцию профиля из вызова FirefoxDriver, то тест запускается в течение 5 секунд после выбора «ЗАПУСК», но тест не пройден, поскольку профиль по умолчанию, который использует Selenium, не имеетсертификаты мне нужно для доступа к моему сайту.

Кто-нибудь еще в той же лодке или знаете, как это исправить?Как настроить объем информации, сохраняемой в профиле?

  • Версия Firefox: 60.3.0
  • Версия Selenium: 3.14.0
  • Версия GeckoDriver: 0,23.0
  • ОС: Linux Redhat 6
  • Версия Eclipse: Neon

Код:

WebDriver browser;
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile ffprofile = profile.get("SeleniumUser");
FirefoxOptions options = new FirefoxOptions().setProfile(ffprofile);
browser = new FirefoxDriver(options); // takes a long time and eventually fails here
browser.get("site.url");

Если вы вынимаетепараметр {options} из нового вызова FirefoxDriver (), тест начнется примерно через 5 секунд.При сохранении параметров возникает ошибка «org.openqa.selenium.WebDriverException: java.io.Exception: неожиданное завершение потока при подключении», как указано выше.

1 Ответ

0 голосов
/ 07 января 2019

Когда вы запускаете процесс для загрузки нового / существующего FirefoxProfile через GeckoDriver базового фреймворка, состоящего из:

  • Драйвер (Seleniumпривязка)
  • Сервер (GeckoDriver)
  • Клиент (Браузер Firefox)

Требуется инициализация иобщаться с различными внутренними модулями.

Вы можете найти подробное обсуждение того, как получить доступ к FirefoxProfile через GeckoDriver с помощью in Не удается разрешить конструктор FirefoxDriver (org.openqa.selenium.firefox.FirefoxProfile)

Дополнительно сохраненные:

  • Закладки
  • Пароль
  • Предпочтения пользователя

также загружаются присуществующие FirefoxProfile нагрузки.Следовательно, требуется дополнительное время.

Подробное обсуждение можно найти в webdriver.FirefoxProfile (): можно ли использовать профиль, не создав его копию?

...