Я хочу проверить, существует ли элемент таблицы? И если нет таблицы, то я просто хочу, чтобы скрипт заканчивался. Однако, если есть таблица, я хочу вывести ее в Excel.
Скрипт тестирует два URL:
http://www.mycounciltax.org.uk/results?postcode=EX99AE&search=Search
http://www.mycounciltax.org.uk/results?postcode=CV56bz&search=Search
Первый URL-адрес представляет веб-страницу без HTML-таблицы, а второй - веб-страницу с элементом HTML-таблицы.
Я пытался собрать следующий скрипт вместе, но я не думаю, что это правильно. Я уверен, что допустил ошибку при тестировании элемента таблицы.
if browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}.exists?
then content = browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}
Если вы удалите приведенный выше код из приведенного ниже сценария, он запустится, но упадет, когда не найдет HTML-таблицу.
require "watir-webdriver"
browser = Watir::Browser.new :ff
browser.goto "http://www.mycounciltax.org.uk/results?postcode=CV56BZ&search=Search"
if browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}.exists?
then 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
else end
browser.goto "http://www.mycounciltax.org.uk/results?postcode=EX99AE&search=Search"
if browser.table.trs.collect {|tr| [tr[0].text, tr[1].text, tr[2].text]}.exists?
then 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
else end
Я планирую запустить вышеуказанный код сразу. Кто-нибудь может указать, где я иду не так? Я новичок в рубине и ватире: -).
Большое спасибо заранее.