我在其他問題上尋找答案,但找不到一個。如何處理無法加載並在Watir-Webdriver中繼續測試的頁面
我的問題是,我有一些結果需要測試,但是當我點擊一個不加載頁面的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
更新
我的意思是說,我想執行的if else(該表輸出到Excel)之前測試每個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
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
謝謝你的回答。 這並不完全是我所追求的...我想將它集成到腳本中,以便如果它返回超時錯誤(因爲URL不起作用),腳本將繼續。 – user1077250 2012-03-02 22:36:01
謝謝你的回答。 這並不完全是我所追求的...我想將它集成到腳本中,以便如果它返回超時錯誤(因爲URL不起作用),腳本將繼續。 我希望圍繞每一塊代碼開始和拯救,以便在執行If If並將結果輸出到Excel表單之前測試url是否工作/加載。 – user1077250 2012-03-02 22:41:53
我已經更新了這些問題,以更詳細地解釋我上面所做的評論。 – user1077250 2012-03-02 22:49:02