我正在使用Angular测试网站 - 单页应用程序。 我正在寻找测试网站中所有链接的正确方法,以确保:
我可以创建一个测试并将所有链接放在其中以及我希望得到的网址。 但这听起来像很多工作和维护。你能想到一个更好的方法吗? 谢谢。
编辑: 在其他测试中,当我想确保链接实际上通向正确的位置时,我使用类似的东西:
browser.driver.findElement(by.xpath('//* [@id="navbar"]/ul/li[4]/a')).click();
browser.getTitle().then(function (titleText) {
console.log(titleText)
expect(titleText).toBe(" My Portal | Inbox page");
});
答案 0 :(得分:0)
我假设您只需要检查a
个元素。您可以获取所有链接元素,遍历它们以获取它们的href,然后单击每个元素。假设您对元素没有任何特殊之处,直接导航到URL应该与单击链接相同。
这里有一些代码,我还没有尝试过:
var urls = [];
var links = element.all(by.css('a')).then(function(links) {
links.forEach(function(link) {
link.getAttribute('href').then(function(href) {
urls.push(href);
});
});
// wait for all the links to be grabbed
browser.waitForAngular().then(function() {
urls.forEach(function(url) {
browser.get(url);
checkBrowserState();
});
});