【问题标题】:Check for valid links if a dead URL redirects to a costum error page检查无效 URL 的有效链接重定向到自定义错误页面
【发布时间】:2014-09-11 13:50:51
【问题描述】:

我需要测试(Selenium)给定页面中的链接是否有效。我在这里找到了一篇关于它的好帖子

http://ardesco.lazerycode.com/index.php/2012/07/how-to-download-files-with-selenium-and-why-you-shouldnt/

但问题是,如果错误页面重定向到自定义错误页面怎么办?然后我会得到 200302 而不是 404。我应该如何检查重定向其 404 网页的 URL 的有效性。

【问题讨论】:

  • 那么你应该检查自定义错误的元素。如果它们存在,那么您在自定义错误页面上
  • 页面或元素的标题应该是测试这个场景的好候选
  • 我不同意使用 browser.title 元素 - 它有效且简单,但如果您的内容团队或 SEO 认为页面标题不友好或不符合品牌要求并在不使用的情况下更改它们警告,它会破坏您的测试,并且总是会在 sprint 演示前一小时发生。这发生在我身上。请改用页面元素。
  • 这一切都很好,但是如果重定向到主页或其他地方呢?

标签: java testing selenium http-status-code-404 url-validation


【解决方案1】:

您应该通过已知的特定测试来利用页面上元素的断言。为此使用特定的可重用函数。

然后当您点击页面时调用该函数作为检查。如果您发现存在特定元素,则在记录 URL 后单击浏览器后退按钮。如果没有,您可以根据需要继续测试。还有一篇关于递归查找所有链接并对其进行测试的帖子。 How to browse a whole website using selenium?

    if (checkError()) //calls specific check for the error on the custom error page
    {
      //Log URL
      string badURL = driver.Url();
      //Save somewhere in a list for output later...

      //navigate to previous page
      driver.navigate().Back();
    }

【讨论】:

  • 正如我在上面的评论中所说,如果损坏的链接被重定向到主页或其他页面怎么办。我见过一些网站这样做。
  • 为了正确测试,必须有一些“已知”状态。您应该至少有一部分您知道应该在那里进行包含文本测试的 URL。如果它确实是相同的,那么检查页面内容是否有你知道应该在该页面上的内容。
猜你喜欢
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 2017-10-27
  • 1970-01-01
相关资源
最近更新 更多