如何处理无法加载的页面并在 Watir-Webdriver 中继续测试 [英] How to deal with a page which fails to load and continue testing in Watir-Webdriver

查看:18
本文介绍了如何处理无法加载的页面并在 Watir-Webdriver 中继续测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经寻找其他问题的答案,但找不到.

I have looked for answer on other questions but I can't find one.

我的问题是我有许多需要测试的结果,但是当我点击未加载页面的 Url 时,我的脚本一直失败.以下网址未加载.当这个 URL 没有加载时,我想继续我的测试.

My problem is that I have a number of results that I need to test but my script keeps failing when I hit an Url that doesn't load a page. The following Url does not load. When this Url does not load I want to continue with my testing.

http://www.mycounciltax.org.uk/results?postcode=WC1N1DF&search=Search

我曾尝试使用:

begin
  Timeout::timeout(30) do

    //enter part that is hanging
  end
end

但是脚本刚刚退出.以下是我正在使用的完整脚本.脚本将超时并退出....

However the script just exits. Below is the full script that I am using. The script will time out and exit on....

browser.goto "http://www.mycounciltax.org.uk/results?postcode=WC1N1DF&search=Search"

关于如何允许脚本继续(绕过此 Url 的测试)并移动到下一个的任何想法?

Any ideas on how to allow the script to continue (bypass the testing of this Url) and move onto the next?

require "watir-webdriver"
browser = Watir::Browser.new :ff
browser.goto "http://www.mycounciltax.org.uk/results?postcode=cv5+6bz&search=Search"
content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
require 'win32ole'

application = WIN32OLE.new('Excel.Application')
application.visible = TRUE
workbook = application.Workbooks.Add();
worksheet = workbook.Worksheets(1);
worksheet.visible

row = 1; column = 0
content.each do |array|
  array.each do |element|
    worksheet.Cells(1,1).offset(row,column).value = element #.offset(row,column)
    column += 1
  end
  row += 1
  column = 0
end


browser.goto "http://www.mycounciltax.org.uk/results?postcode=WC1N1DP&search=Search"
if browser.table.exists?
  content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
  row = 1; column = 0
  content.each do |array|
    array.each do |element|
      worksheet.Cells(1,125).offset(row,column).value = element #.offset(row,column)
      column += 1
    end
    row += 1
    column = 0
  end
else
  content =0
end



browser.goto "http://www.mycounciltax.org.uk/results?postcode=WC1N1DF&search=Search"
if browser.table.exists?
  content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
  row = 1; column = 0
  content.each do |array|
    array.each do |element|
      worksheet.Cells(1,130).offset(row,column).value = element #.offset(row,column)
      column += 1
    end
   row += 1
   column = 0
  end
else
  content =0
end

    
browser.goto "http://www.mycounciltax.org.uk/results?postcode=WC1N1DP&search=Search"
if browser.table.exists?
  content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
  row = 1; column = 0
  content.each do |array|
    array.each do |element|
      worksheet.Cells(1,135).offset(row,column).value = element #.offset(row,column)
      column += 1
    end
    row += 1
    column = 0
  end
else
  content =0
end

更新

我的意思是说我想在执行 if else(将表输出到 excel)之前测试每个 url 是否加载.我可以做一些类似的事情

Update

I meant to say that I would like to test whether each url loads before performing the if else (which outputs the table into excel). Could I do something along the lines of this

require "watir-webdriver"
browser = Watir::Browser.new :ff
browser.goto "http://www.mycounciltax.org.uk/results?postcode=cv5+6bz&search=Search"
content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
require 'win32ole'

application = WIN32OLE.new('Excel.Application')
application.visible = TRUE
workbook = application.Workbooks.Add();
worksheet = workbook.Worksheets(1);
worksheet.visible

row = 1; column = 0
content.each do |array|
  array.each do |element|
    worksheet.Cells(1,1).offset(row,column).value = element #.offset(row,column)
    column += 1
  end
  row += 1
  column = 0
end

begin
  browser.goto "http://www.mycounciltax.org.uk/results?postcode=WC1N1DP&search=Search"
  if browser.table.exists?
    content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
    row = 1; column = 0
    content.each do |array|
      array.each do |element|
        worksheet.Cells(1,125).offset(row,column).value = element #.offset(row,column)
        column += 1
      end
      row += 1
      column = 0
    end
  else
    content =0
  end
rescue => e
  puts "rescued #{e}"
end

begin
  browser.goto "http://www.mycounciltax.org.uk/results?postcode=WC1N1DF&search=Search"
    if browser.table.exists?
      content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
      row = 1; column = 0
      content.each do |array|
        array.each do |element|
          worksheet.Cells(1,130).offset(row,column).value = element #.offset(row,column)
          column += 1
        end
       row += 1
       column = 0
     end
  else
    content =0
  end
rescue => e
  puts "rescued #{e}"
end

begin   
  browser.goto "http://www.mycounciltax.org.uk/results?postcode=WC1N1DP&search=Search"
  if browser.table.exists?
    content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
    row = 1; column = 0
    content.each do |array|
      array.each do |element|
        worksheet.Cells(1,135).offset(row,column).value = element #.offset(row,column)
        column += 1
      end
      row += 1
      column = 0
    end
  else
     content =0
  end
rescue => e
    puts "rescued #{e}"
end

推荐答案

我不确定您将如何测试未加载的页面,但请尝试以下操作:

I am not sure how would you test a page that did not load, but try something like this:

begin
  browser.goto "http://www.mycounciltax.org.uk/results?postcode=WC1N1DF&search=Search"
rescue => e
  puts "rescued #{e}"
end

这篇关于如何处理无法加载的页面并在 Watir-Webdriver 中继续测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆