webdriver удаляет параметры после хэш-метки (#) в URL

#typescript #google-chrome #safari #cucumber #webdriver-io

#typescript #google-chrome #safari #огурец #webdriver-io

Вопрос:

Я добавляю некоторый тест пользовательского интерфейса, используя webdriver io, cucumber и typescript, и мне нужно включить фрагмент URL после хэш-метки (#). Это предназначено для предотвращения отображения некоторых модальностей на веб-странице, прямо сейчас, если я попытаюсь сделать это вручную в браузерах (Chrome и Safari), все работает нормально, и сайт ведет себя так, как ожидалось. Это означает, что URL всегда показывает фрагмент, а модальные значения никогда не отображаются. Но, когда это делается с помощью автоматических тестов, страница загружается с фрагментом после хэша, но затем он обновляется, и параметр исчезает. Это приводит к появлению модальных элементов, нарушающих автоматизацию. Кто-нибудь знает механизм, позволяющий убедиться, что страница включает это? или, если есть какие-либо ограничения из Webdriver.io сторона (я использую версию 6.x)?

Например: (ожидаемый сценарий):

  1. Я открываю следующий URL-адрес из своего теста, и он остается таким, какой он есть (позволяя некоторым третьим сторонам выполнять то, что они должны):www.my-page.com#something

(Текущий сценарий):

  1. Я открываю тот же URL, что и в предыдущем сценарии, но затем он обновляется, оставляя его без параметра. Как, например:www.my-page.com

Я пытался избежать #, установив его в разных местах или даже перезагрузив страницу. Но ничего не сработало.

К сожалению, я не могу поделиться кодом реализации

Комментарии:

1. Не могли бы вы перепутать параметры запроса URL (с префиксом ‘?’) с идентификатором фрагмента URL (с префиксом ‘#’). Идентификаторы фрагментов обычно удаляются со стороны клиента как часть разрешения URI, и сервер работает с абсолютными URI, которые включают параметры запроса, но не содержат фрагмента.. После извлечения ресурса клиент может использовать идентификатор фрагмента для выбора некоторого местоположения в возвращенном ресурсе, например, веб-браузер может использовать его для прокрутки до определенной части веб-эпохи.

2. Таким образом, приведенный вами пример ‘www.my-page.com#key=value » кажется подозрительным. Можете ли вы попробовать ‘www.my-page.com?key=value ‘

3. привет, @Burt_Harris, ты прав. Я перепутал именование. Я имею в виду фрагмент URL. Я уже обновил описание

4. @Burt_Harris то есть вы имеете в виду, что браузер автоматически удалит этот фрагмент URL-адреса из URL-адреса после загрузки страницы?

5. Я отмечаю, что использование фрагмента, содержащего знак равенства (=), по моему опыту, необычно, и это наводит на мысль, что вы, возможно, пытаетесь использовать хэш (#) для чего-то, для чего он не предназначен. Фрагменты в URI обычно представляют собой единый идентификатор в целевом документе. Мое утверждение основано на общем опыте работы в Интернете, а не на знании конкретных технологий, которые вы упоминаете. Извините, я больше не могу помочь.