使用 Watir 检查坏链接

2023-11-25

我有一个无序列表的链接,我保存在一边,我想单击每个链接并确保它转到真实页面,而不是 404、500 等。

问题是我不知道该怎么做。是否有一些我可以检查的对象可以为我提供 http 状态代码或其他内容?

mylinks = Browser.ul(:id, 'my_ul_id').links

mylinks.each do |link|
  link.click

  # need to check for a 200 status or something here! how?

  Browser.back
end

我的回答和铁皮人的想法类似。



require 'net/http'
require 'uri'

mylinks = Browser.ul(:id, 'my_ul_id').links

mylinks.each do |link|
  u = URI.parse link.href
  status_code = Net::HTTP.start(u.host,u.port){|http| http.head(u.request_uri).code }
  # testing with rspec
  status_code.should == '200'
end
  

如果您使用 Test::Unit 进行测试框架,我认为您可以进行如下测试



  assert_equal '200',status_code
  

另一个示例(包括 Chuck van der Linden 的想法):检查状态代码并在状态不好时注销 URL。



require 'net/http'
require 'uri'

mylinks = Browser.ul(:id, 'my_ul_id').links

mylinks.each do |link|
  u = URI.parse link.href
  status_code = Net::HTTP.start(u.host,u.port){|http| http.head(u.request_uri).code }
  unless status_code == '200'
    File.open('error_log.txt','a+'){|file| file.puts "#{link.href} is #{status_code}" }
  end
end
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Watir 检查坏链接 的相关文章

随机推荐

  • Twitter Streaming API - urllib3.exceptions.ProtocolError: ('连接中断:IncompleteRead

    使用 tweepy 运行一个 python 脚本 该脚本在英语推文的随机样本中流式传输 使用 twitter 流 API 一分钟 然后交替搜索 使用 twitter 搜索 API 一分钟 然后返回 我发现的问题是 大约 40 多秒后 流媒体
  • Windows系统上的IOS编程[重复]

    这个问题在这里已经有答案了 我有兴趣学习 IOS 编程 但目前我无法访问 Macintosh 系统 只是想知道是否有适用于 Windows 的 IOS SDK 的等效版本 不过我有一部 iPhone 您可以查看GNUStep这是一个跨平台的
  • 设置 Z 索引不起作用。容器后面的按钮(HTML - CSS)

    I using Metro css windows 8 style and have a problem I have container with alerts the blue in the picture and above ther
  • MS Access VBA - 在数据表子表单中显示动态构建的 SQL 结果

    我在 MS Office 应用程序 用于自动化和 ETL 流程 中拥有多年使用 VBA 的经验 但直到最近才需要处理 MS Access 中的表单 我正在为我设计的数据库设计一些简单的数据提取表单 并专注于看似简单的任务 目标 我需要一个数
  • 具有 tf 数据集输入的 Tensorflow keras

    我是张量流 keras 和数据集的新手 谁能帮我理解为什么下面的代码不起作用 import tensorflow as tf import tensorflow keras as keras import numpy as np from
  • 每 60 秒调用一次函数

    Using setTimeout 可以在指定时间启动一个功能 setTimeout function 60000 但是如果我想多次启动该功能怎么办 每次经过一个时间间隔 我都会执行该函数 假设每 60 秒一次 如果您不关心代码是否在time
  • Task.WhenAll 不等待

    我正在学习如何在控制台应用程序中使用异步函数 但无法使 Task WhenAll 等到所有任务完成 下面的代码有什么问题 它同步工作 先感谢您 static void Main string args IncluiValores stati
  • 让阴影在 Three.js 自定义着色器中工作

    我正在尝试让阴影在 Three js 中的自定义着色器中工作 我尝试将这些添加到我的代码中 穿着制服 THREE UniformsLib shadowmap 在片段着色器中 THREE ShaderChunk shadowmap pars
  • 创建特定尺寸的绘图窗口

    如何创建具有特定宽度和高度 以像素等为单位 的新屏幕 R 绘图窗口 Use dev new See 这个相关问题 plot 1 10 dev new width 5 height 4 plot 1 20 更具体地说使用哪些单位 dev ne
  • 将对象从注入的页面脚本传递到内容脚本

    我正在编写一个 chrome 扩展 并且正在努力将对象从主页传递回内容脚本 我似乎无法访问窗口的变量 内容脚本 STORE DATA TO CHROME STORAGE ON EVENT create hidden input var hi
  • 带有 -weak_library /usr/lib/libSystem.B.dylib 链接器标志的 objc_setAssociatedObject 上的 EXC_BAD_ACCESS

    我有一个EXC BAD ACCESS当我打电话时objc setAssociatedObject使用链接器标志 weak library usr lib libSystem B dylib链接器标志 我绝对需要链接器标志 因为this 有人
  • PHP,HTML:自动提交表单[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 询问代码的问题必须对所解决的问题表现出最低限度的了解 包括尝试的解决方案 为什么不起作用以及预期结果 也可以看看 Stack Overflow 问题清单 有关您编写的代码的问题必须描
  • 附加文本未在 d3 v4 中显示

    我正在尝试 翻译 平行坐标示例到新版本的 d3 v4 我有一个使用此 javascript 的工作示例 如果有人尝试使用 d3 的 v4 并对新功能有问题 这也是一个很好的示例 var margin top 30 right 10 bott
  • 如何让 jQuery 等待 Ajax 调用完成后再返回?

    我有一个需要登录的服务器端功能 如果用户登录 该函数将在成功时返回 1 如果没有 该函数将返回登录页面 我想使用 Ajax 和 jQuery 调用该函数 我所做的就是使用普通链接提交请求 并在其上应用点击功能 如果用户未登录或函数失败 我希
  • 是否有可以检查表情符号的特定范围的 unicode 代码点?

    表情符号是否占据明确定义的 unicode 范围 并且 在 python 2 7 中是否有确定的方法来检查代码点是否是表情符号 我似乎找不到这方面的任何信息 有几个消息来源指出了这个范围 U0001f600 U0001f650 但例如 有代
  • 即使使用 ChangeDetectionStrategy.OnPush 也会调用 Angular ngDoCheck()

    可以说我有一个像这样的组件结构 AppComponent HeaderComponent ContentComponent TodosComponent TodoComponent 如果我设置 HeaderComponent 的change
  • 从 BGL 图中提取邻接矩阵

    使用Boost图库我正在寻找一种方法提取邻接矩阵来自由以下任一表示的基础图boost adjacency list or boost adjacency matrix 我想结合使用这个矩阵boost numeric ublas求解联立线性方
  • 如何在 shell 中以可移植的方式在第一个空行上分割文件(例如使用 sed)?

    我想将包含 HTTP 响应的文件拆分为两个文件 一个仅包含 HTTP 标头 另一个包含消息正文 为此 我需要在第一个空行上将文件分成两个 或者对于仅包含 CR 的第一行的 UNIX 工具 r 字符 使用外壳脚本 如何以可移植的方式执行此操作
  • 错误 android SurfaceFlinger

    我有这个错误消息 SurfaceFlinger 半透明 0 isOpaque 1 isExternalDisplayLayer 0 isExternalBlockLayer0 我使用的是安卓4 1 1 我无法说出我的代码的哪一部分正在生成此
  • 使用 Watir 检查坏链接

    我有一个无序列表的链接 我保存在一边 我想单击每个链接并确保它转到真实页面 而不是 404 500 等 问题是我不知道该怎么做 是否有一些我可以检查的对象可以为我提供 http 状态代码或其他内容 mylinks Browser ul id