带有href属性的元素在点击后是否始终有效

时间:2018-10-31 22:01:04

标签: html testing automated-tests ui-automation

我正在编写一套自动化的UI测试。我有一组测试来验证导航栏中的链接是否正常工作,它们花费了很长的时间,因为每个测试加载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 :(得分:0)

这可能是您正在寻找的解决方案:

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

每次单击链接但实际上不转到该链接时,该代码会将href属性作为文本附加到正文中。返回false;该代码的一部分阻止了浏览器对该链接执行默认操作。确切的内容可以这样写:

$("a").click(function(e) {
   $("body").append($(this).attr("href"));
   e.preventDefault();
}

答案 1 :(得分:0)

通过获取href内容,即使导航栏链接不起作用,您也可能会面临自动化通过测试的风险。可能是导航栏链接被错误地禁用,但是由于该链接仍然存在于DOM中,因此您的自动化操作不会捕获它。

只有我的10美分...