extrait pertinent de test.html:HTML grattage avec hpricot en utilisant Ruby 1.8.7 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>
Ne manquez ce code 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
Lorsque vous vous connectez @ vacant_seat.to_s cette est ce que je me retrouve avec:
[[ "31F"], [ "31E"], [ "31D"], [ "31C"]] (en utilisant 1.9.2)
31F31E31D31C (avec 1.8.7)
signifie que si je ne @vacant_seat [0] .to_s Je vais:
[ "31F"] (1.9.2) et 31F (1.8.7)
Je veux finir avec 31F (comme je le fais avec 1.8.7)
Y a-t-il des problèmes? Existe-t-il une façon générique de faire cela dans les deux versions de Ruby? J'ai besoin d'extraire la chaîne (par exemple 31F) qui se trouve entre les caractères de soulignement (_) dans les attributs ID. S'il y a une meilleure façon de faire cela, j'apprécierais d'en entendre parler.
Comment cela est-il lié au concombre ou au watir? –
Il serait plus facile de reproduire le problème si vous fournissez du code HTML pertinent. –
Merci pour vos commentaires. Je veux l'utiliser plus tard pour automatiser quelques tests (en utilisant watir-webdriver et en cliquant sur les éléments collectés lors d'un test) et je pensais que c'était un problème courant pour les gens qui font ça (grattage htmls). Je peux aussi voir à quel point c'est plutôt Ruby, donc si vous pensez que les tags sont trompeurs, je peux les supprimer. – kfa