Будет ли элемент с атрибутом href всегда работать при нажатии - PullRequest
0 голосов
/ 01 ноября 2018

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

Одна из ссылок будет выглядеть следующим образом, все они в основном одинаковы, все содержатся в списке <li> элементов:

<a href="/projects/7d9162e5-e59c-452e-b9f5-684a2e0f2924/home" data-reactid=".0.2.0.0.0.$0.0">
  <span class="icon icon-home" data-reactid=".0.2.0.0.0.$0.0.0"></span>
  <span class="label" data-reactid=".0.2.0.0.0.$0.0.1">Home</span>
</a>

Я мог бы извлечь содержимое из атрибута href и запросить страницу программно (не загружать ее в браузере), чтобы подтвердить, что href верен, и это будет значительно быстрее.

Есть ли вероятность, что элемент может иметь атрибут href, который указывает на страницу, как и ожидалось, но по какой-либо причине нажатие на этот элемент может быть нарушено?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Принимая href-контент, вы рискуете, что ваша автоматизация пройдет тест, даже если ссылка на панель навигации не работает. Возможно, ссылка navbar была отключена по ошибке, но, поскольку ссылка все еще присутствует в DOM, ваша автоматизация не сможет ее перехватить.

Только мои 10 центов ...

0 голосов
/ 01 ноября 2018

Это может быть решение, которое вы ищете:

<a href="#" onclick="return false;">Link to Page</a>

Этот код будет добавлять атрибут href в виде текста к телу каждый раз, когда ссылка нажимается, но фактически не идет по этой ссылке. Возвращение ложное; часть этого кода не позволяет браузеру выполнить действие по умолчанию для этой ссылки. Точную вещь можно написать так:

$("a").click(function(e) {
   $("body").append($(this).attr("href"));
   e.preventDefault();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...