2012-12-11 19 views
15

Yeni başlayanlardan iki soru.Capybara, HTML öğesini ID ve Sınıf ile kontrol etme

S1 - Kimlik ve sınıf tarafından bir HTML düğümünün varlığını iddia etmek mümkün mü? Ben,

page.should have_css('div.drawer') 
page.should have_css('div#first') 

ama biz nedense her iki parametre varlığı için sorgulayabilir: Gördüğüm

<div class="drawer" id="first"....> 

gibi bir şey kullanabilirsiniz: Aşağıdaki eleman varsa Örneğin görmek yani, sana yaparak kapsamını sınırlamak gördüm,

page.should have_selector("div", :class => "drawer", :id => "first") 

2.Ç Kapibara 'içinde' yöntemine 2 seçiciler eklemek mümkün mü: aşağıdakileri denedim ve işe yaramadı

within("//div[@id='first']") do 

ama biz nedense 'ilk' = id ekleyerek bu DIV filtrelemek ve class = 'çekmece' olabilir?

Çok teşekkürler!

cevap

35

Seçiciler birleştirebilirsiniz. İlk sorunun, "ilk" kimliğine sahip bir div için aşağıdaki kontroller ve sınıf "çekmecede" için

: İkinci soru için

page.should have_css('div#first.drawer') 

yukarıdaki gibi aynı css-seçiciyi kullanabilirsiniz within blok : gerçekten xpath isterseniz

within('div#first.drawer') do 

Veya, yapabilirsiniz:

within("//div[@id='first' and @class='drawer']") do 

Css seçiciler için iyi bir başvuru: http://www.w3.org/TR/CSS2/selector.html

+0

Justin, ne diyebilirim .... Açıklama, örnekler ve bağlantı için çok teşekkürler, sadece harika !!! :) – mickael