相關片段:HTML從test.html的與使用Ruby 1.8.7角度來說,Hpricot刮VS 1.9.2
<div id="seat_31F_vacant" class="seatVacant" onclick="UpdateHost(this);Common.DoPostBack('lbtPostBack','31F');" onmouseover="Seat_onMouseOver(this)" onmouseout="Seat_onMouseOut(this)">F</div>
現在考慮這個Ruby代碼:
doc = Hpricot(test.html)
doc.search("//div[@class='seats']").each do |seat|
@vacant_seat += seat.to_s.scan(/id="seat_(.*)_vacant/)
end
@log.info @vacant_seat.to_s
當登錄@ vacant_seat.to_s這就是我結束了:
[ 「31F」],[ 「31E」],[ 「31D」],[ 「31C」]](使用1.9.2)
31F31E31D31C(使用1.8.7)
這意味着如果我不@vacant_seat [0] .to_s我會得到:
[ 「31F」]( 1.9.2)和31F(1.8.7)
我想結束31F(就像我做1.8.7)
任何thougts?有沒有一種通用的方法可以在兩個Ruby版本中使用?我需要提取ID屬性中位於下劃線字符(_)之間的字符串(例如31F)。如果有更好的方法來做到這一點,我會很高興聽到它。
這是關係到黃瓜或watir? –
如果您提供相關的HTML,則重現該問題會更容易。 –
感謝您的意見。我想稍後使用它來自動化一些測試(使用watir-webdriver並在測試運行期間單擊收集的元素),並且認爲這可能是人們做這件事的常見問題(scraping htmls)。我也可以看到它更像是一個Ruby的東西,所以如果你認爲標籤有誤導性,我可以刪除它們。 – kfa