Я искал ответ на другие вопросы, но не могу его найти.
Моя проблема заключается в том, что у меня есть ряд результатов, которые мне нужно проверить, но мой скрипт продолжает сбой, когда я нажимаю на URLэто не загружает страницу.Следующий URL не загружается.Когда этот URL не загружается, я хочу продолжить тестирование.
http://www.mycounciltax.org.uk/results?postcode=WC1N1DF&search=Search
Я пытался использовать:
begin
Timeout::timeout(30) do
//enter part that is hanging
end
end
Однако скрипт просто завершается.Ниже приведен полный скрипт, который я использую.Срок действия сценария истечет и он завершится ....
browser.goto "http://www.mycounciltax.org.uk/results?postcode=WC1N1DF&search=Search"
Любые идеи о том, как можно продолжить выполнение сценария (обойти проверку этого URL-адреса) и перейти к следующему?
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
Обновление
Я хотел сказать, что хотел бы проверить, загружается ли каждый URL-адрес, прежде чем выполнять if else (который выводит таблицу в excel).Могу ли я сделать что-то вроде этого
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