我正在编写一套自动化的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属性,但是出于任何原因,单击该元素可能会被破坏?
答案 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美分...