C# Работа тестового фрейма транспортира не работает на Angular страницах после переноса приложения в Docker на Linux - PullRequest
1 голос
/ 02 мая 2020

Я использовал следующую структуру для тестов пользовательского интерфейса приложения angular, и обе версии работали отлично. Тестовый код и исходный код приложения были на виртуальных машинах TFS, Windows.

  • Версия 1: SpecFlow, SpecFlow + SpecRun3, C# веб-драйвер селена, объектная модель страницы, транспортир.
  • Версия 2: Spe c Flow, Nunit, C# веб-драйвер селена, объектная модель страницы, транспортир.

Среда: Framework = "net461", Docker 2.2.0.5 (43884), Ubuntu 18.04

Примечание: транспортир представляет собой пакет Nuget для тестирования angular страниц и работает так же отлично, как и сам транспортир без использования каких-либо явные ожидания.

Транспортир прекратил поиск веб-элементов на страницах angular после перемещения приложения в Linux - Docker контейнеров, и ошибка «Сообщение: время ожидания сценария».

public class HomePage 
{

    public HomePage()
    {
        PageFactory.InitElements(Driver.GetNgDriver(), this);         
    }

    [FindsBy(How = How.XPath, Using = " //button[@class='button-asd']")]
    public IWebElement HomeButton { get; set; }

}

Когда я могу изменить тип драйвера в конструкторе страницы angular как «PageFactory.InitElements (Driver.GetDriver (), this);» затем он становится обычным C# + селеном, и нам приходится иметь дело со всеми веб-элементами индивидуально, используя явные ожидания. Проблема повторяется аналогичным образом в этих условиях.

  • Приложение включено Linux - Docker и тестовый код находится на windows машина
  • Приложение включено Linux - Docker и тестовый код включен Linux - Docker

Я хочу использовать мой простой, понятный код без явных ожиданий, как раньше.

pages.HomePage().HomeButton.Click();

Спасибо за ваши идеи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...