Как вызвать запущенный тест Ranorex в цикле?

Я записал и частично написал тест для веб-сайта, который работает для определенного типа браузера. Пользователь может изменить поле класса так называемого типа EBrowserType, которое является созданным мной enum. Он содержит все типы браузеров, с которыми может справиться Ranorex.

Теперь меня попросили провести цикл по всему тесту, в котором вызываются все типы браузеров. У меня возникают проблемы, так как существующий тест представляет собой группу записей, где пользователь щелкнул в какой-то момент в текстовом поле открытого браузера запрошенного типа браузера. Кажется, что в цикле это больше невозможно, поскольку сам код создает браузер и закрывает его после этого.

В исходном коде есть часть SETUP, открывающая браузер, и следующая запись. Как вызвать запущенный тест Ranorex в цикле? Эта запись называется SearchJobRegionRecording и запускается щелчком мыши в поле поиска браузера. В автоматически созданном файле C# это выглядит следующим образом:

[TestModule("c7957eb6-feec-4dce-aef3-6af20fa71b8b", ModuleType.Recording, 1)]
public partial class SearchJobRegionRecording : ITestModule
{
    /// <summary>
    /// Holds an instance of the IVMJobsiteTest.IVMWebsiteTestRepository repository.
    /// </summary>
    public static IVMJobsiteTest.IVMWebsiteTestRepository repo = IVMJobsiteTest.IVMWebsiteTestRepository.Instance;
    […]

    [System.CodeDom.Compiler.GeneratedCode("Ranorex", "8.0")]
    void ITestModule.Run()
    {
        Mouse.DefaultMoveTime = 0;
        Keyboard.DefaultKeyPressTime = 0;
        Delay.SpeedFactor = 100.00;

        Init();

        Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Click item 'Home.Text' at 128;8.", repo.Home.TextInfo, new RecordItemIndex(0));
        repo.Home.Text.Click("128;8");
        […]
    }
}

Как видите, для доступа к экземпляру браузера требуется объект repo. Как вызвать запущенный тест Ranorex в цикле?Как вызвать запущенный тест Ranorex в цикле?Мой вопрос: Как я могу получить экземпляр браузера в моем коде цикла браузера? Единственная подсказка о созданном браузере - это идентификатор процесса.

Вот соответствующая часть кода цикла браузера:

public void TestAllBrowsers()
{
    foreach (EBrowserType browser in Enum.GetValues(typeof(EBrowserType)))
    {
        foreach (Point size in sizes)
        {
            Report.Log(ReportLevel.Info, "Code", "Open with the " + browser + " browser of "
                       + size.X + '×' + size.Y + " size " + url);
                BaseCodeCollection.KillCurrentBrowser(browser);
                var height = (short) size.X;
                var width = (short) size.Y;

                int processID = BaseCodeCollection.OpenBrowser(height, width, url, browser, isVerbose);

                DetermineOriginalVacancies();

                EnterSearchWords(); // HERE, A RepoItemInfo or something like that should be passed so that a mouse click is possible.

                AnalyzeSearchResultsMethod();

                CloseBrowser();
        }
    }
}

Вы видели следующий ответ, в котором объясняется, как закрыть любой экземпляр браузера, используя только элемент репо? stackoverflow.com/questions/37142841/…

Sup3rHugh 27.03.2018 21:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
689
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

  • Просмотрите список поддерживаемых браузеров (IE, Chrome и т. д.):
    • Откройте Bing в браузере (StartBrowser)
    • Щелкните поле поиска (элемент репо) (ClickSearchTerm)
    • Итерируйте поисковые запросы:
      • Введите текст в поле поиска (элемент репо) (SetSearchTerm)
      • Очистить текст в поле поиска (элемент репо) (ClearSearchTerm)
    • Закройте экземпляр браузера (элемент репо) (CloseBrowser)

Все эти шаги содержатся в тестовом примере, который выполняет итерацию по списку поддерживаемых браузеров (IE и Chrome в моем примере, но он будет работать с любым браузером, поддерживаемым Ranorex).

Мои позиции репо:

Веб-документ Bing: /dom[@caption='Bing' and @page=''] (убедитесь, что шпион обнаруживает только один экземпляр веб-документа, иначе CloseBrowser не сработает)

Поле поиска Bing (под элементом репозитория Bing): .//input[#'sb_form_q']

Запись StartBrowser - это просто действие «Открыть браузер» (с URL-адресом и браузером в качестве аргументов), за которым следует задержка в 2 секунды (для загрузки страницы). Запись CloseBrowser - это просто действие закрытия приложения с элементом репозитория веб-документа Bing в качестве аргумента.

Обратите внимание, что мой пример нигде не нужен экземпляр браузера, поэтому я точно не знаю, отвечает ли он на ваш вопрос. Единственная запись, для которой требуется параметр браузера, - это запись StartBrowser. Во всех других записях используются элементы репозитория, которые не зависят от браузера (что является одной из сильных сторон использования Ranorex).

Если мой пример не помог вам в решении вашей проблемы, не стесняйтесь спрашивать подробности.

Спасибо за ваш ответ. Это возможно при использовании $variables, которые читаются из файлов CSV.

Sae1962 29.03.2018 09:57

Я счастлив, что помог. Что касается второго предложения, я не понимаю, о чем вы говорите. Если вам интересно, как перебирать типы браузеров, в качестве первого шага я бы использовал «Простую таблицу данных» в наборе тестов и привязал ее к записи StartBrowser.

Sup3rHugh 29.03.2018 20:29

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