Click.on(ссылка) против Navigate.to()

Моя тестируемая система представляет собой веб-сайт, который динамически создает страницы из файла конфигурации и индексную страницу с интерактивными значками для этих страниц. До сих пор я не мог найти способ перебирать значки на странице индекса и тестировать все связанные страницы.

    it('lets us test all the pages', () =>
    actorCalled('Jasmine').attemptsTo(
        Loop.over(EntryPage.SynthLinks).to(
            Ensure.that(Loop.item<ElementFinder>(), isClickable()),
            Click.on(Loop.item<ElementFinder>()),
            Wait.for(Duration.ofSeconds(10)),
            Log.the(Website.title()),
            //Navigate.back(),
        ),
    ));

Этот цикл работает до тех пор, пока он показывает мне все страницы в Chrome, но зарегистрированный заголовок веб-сайта всегда совпадает с заголовком страницы индекса, поэтому я не могу выполнить какое-либо тестирование на страницах, на которые нажали. (Комментарий Navigate.back() также нарушает тест .) Я попытался прочитать URL-адрес страниц, на которые нажали, из Loop.item<ElementFinder>(), чтобы вместо этого использовать Navigate.To(), но я не смог найти никакого метода для этого.

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

Ответы 1

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

Хорошо, я узнал это. Виновником был тестируемый веб-сайт, он использовал не href для ссылки, а немного кода js:

[...]
var Subwindows = [];
function openSub(name) {
    var neighbour = window.open(name);
    Subwindows.push(neighbour);
}
[...]
<a onclick = "openSub('../SynthPage.html?Mdl=access+virus+b')"><img src = "../images/virus.jpg" class = "icon" alt = "access virus b"></a>

Идея состоит в том, чтобы запомнить открытые страницы и закрыть их, когда закончите. Таким образом, хороший Chrome добросовестно выполнил js и показал мне открытую страницу (в отдельной вкладке), но в центре внимания теста по-прежнему была исходная страница. Надо будет придумать, как это проверить || :-)

Serenity/JS теперь предоставляет новые взаимодействия для переключения на другое окно фрейма и закрытия вкладок/окон, которые могут оказаться полезными в этом сценарии.

Jan Molak 15.03.2021 03:09

Спасибо, я нашел это уже в документе. Это решило мою проблему.

tommiport5 16.03.2021 09:17

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

Похожие вопросы

Нужно ли нам устанавливать браузер с графическим интерфейсом без RedHat Linux m/c, когда мы запускаем безголовые тесты с использованием XVFB?
Достаточно указать, в каком браузере вы хотите запускать тесты в файле serenity.properties?
Как перемещаться по списку с разбивкой на страницы, пока не найдете текст с помощью Serenity-JS?
Как расширить задачу «Пуск» новыми сценариями
Файл функций, содержащий два отдельных сценария, имеющих странные проблемы с веб-локатором
Ссылаясь на книгу John's Serenity BDD, может ли аннотация @Test охватывать полный сценарий как часть запуска SerenityRunner.class?
Как инициализировать объект драйвера, чтобы его могли использовать все классы
Как создать проект шаблона сценария с помощью машинописного текста, безмятежности и огурца?
Serenity: Как различать отчеты в зависимости от используемой платформы?
Как загрузить файл, используя шаблон сценария безмятежности