我想測試的是表格元素是否存在?如果沒有表格,我只想讓腳本結束。但是,如果有一個表我想輸出到Excel。測試一個html表格元素是否存在使用ruby watir
該腳本測試兩個網址:
http://www.mycounciltax.org.uk/results?postcode=EX99AE&search=Search
http://www.mycounciltax.org.uk/results?postcode=CV56bz&search=Search
第一URL中提出了一個網頁,而無需HTML表格和第二呈現一個網頁,包括HTML表格元素。
我曾嘗試將以下腳本放在一起,但我不認爲這是正確的。我確信我在測試table元素時犯了一個錯誤。
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
我打算一次運行上面的代碼。任何人都可以指出我要去哪裏嗎?我是ruby和watir的新手:-)。
非常感謝提前。
這是我用過的解決方案。非常感謝。 – user1077250 2012-02-06 14:10:22