gpt4 book ai didi

ruby - 使用 Watir 检查错误链接

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:47 24 4
gpt4 key购买 nike

我有一个未排序的链接列表,我将其保存在旁边,我想单击每个链接并确保它转到真实页面而不是 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').linksmylinks.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').linksmylinks.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}" }  endend

关于ruby - 使用 Watir 检查错误链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5629170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com