Testing 在我的网站中使用量角器测试链接

Testing 在我的网站中使用量角器测试链接,testing,protractor,angularjs-e2e,Testing,Protractor,Angularjs E2e,我正在使用Angular测试一个网站-单页应用程序。 我正在寻找正确的方法来测试我网站中的所有链接,以确保: 我不会去404的 我要去我应该去的地方 我可以创建一个测试,将所有链接和我希望得到的URL放在其中。 但这听起来像是一个很大的工作和维护。你能想出更好的办法吗? 谢谢 编辑: 在其他测试中,当我想确保链接实际指向正确的位置时,我会使用以下方法: browser.driver.findElement(by.xpath('//* [@id="navbar"]/ul/li[4]/a')).c

我正在使用Angular测试一个网站-单页应用程序。 我正在寻找正确的方法来测试我网站中的所有链接,以确保:

  • 我不会去404的
  • 我要去我应该去的地方
  • 我可以创建一个测试,将所有链接和我希望得到的URL放在其中。 但这听起来像是一个很大的工作和维护。你能想出更好的办法吗? 谢谢

    编辑: 在其他测试中,当我想确保链接实际指向正确的位置时,我会使用以下方法:

     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");
      });
    

    我假设您只需要检查
    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();
      });
    });
    

    你能把你试过的和代码贴出来吗?看起来不错。我试试看,它不太管用。我得到'TypeError:参数'url'必须是字符串,而不是对象'