У нас есть веб-приложение MVC 5 C# с использованием Kendo Mobile UI compenents, которые мы развертываем с помощью Octopus Deploy (Test, Staging, Prod) и имеем возможность запускать тесты Selenium UI.Selenium Internet Explorer Driver, Kendo Mobile и Octopus Deploy
Процесс отлично работает для всех сред с драйвером Selenium Chrome, однако у нас есть проблема с Selenium Internet Explorer Driver на серверах.
Тесты пользовательского интерфейса выходят из строя на серверах, когда они запускаются как часть процесса Octopus Deploy. Тестирование выполняется локальным разработчиком и выполняется на серверах, если вы выполняете скрипт вручную (тот же скрипт и пользователь, что и процесс Octopus Deploy).
Единственное различие, которое я вижу, заключается в том, что один из них работает без головы как часть выполнения скрипта щупальца, а другой нет.
Мы получаем следующее сообщение об ошибке:
Tentacle script execution OpenQA.Selenium.ElementNotVisibleException: Element is not displayed
Я могу воссоздать эту ошибку в локальном разработчика, изменив параметры для веб-драйвера IE для:
var options = new InternetExplorerOptions();
options.RequireWindowFocus = false;
var webDriver = new InternetExplorerDriver(options);
Элемент, который вызывает проблему является мобильной кнопкой Kendo:
<a data-role="button" data-rel="drawer" id="searchIcon" href="#searchDrawer" data-icon="search" data-align="left"></a>
Это не сработало, мы также попытались запустить службу щупальца в качестве пользователя администратора без везения, когда мы запускали скрипт вручную с тем же пользователем, с которым он работал нормально. Перезагрузите службу после изменения, чтобы убедиться. – GerardBeckerleg
Можете ли вы запустить службу щупальца в интерактивном режиме (просто остановите службу, а затем запустите Tentacle.exe), чтобы узнать, работает ли это? –
Мы выполнили https://octopusdeploy.com/blog/testing-powershell-scripts для запуска вручную. В первый раз, когда он сработал, он не удался, но все последующие времена он сработал. Мы попробовали другое развертывание через интерфейс, но это не удалось. – GerardBeckerleg