2012-12-11 9 views
15

Dwa pytania od początkującego.Kapibara, sprawdzanie elementu HTML według ID i klasy

Q1 - Czy można potwierdzić istnienie węzła HTML według identyfikatora i klasy? Na przykład, aby sprawdzić, czy istnieje następujący element:

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

Widziałem można użyć coś takiego:

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

ale możemy jakoś zapytać o istnieniu obu parametrów, I” wcześniej próbowałem następujące i nie działa:

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

Q2- Czy można dodać 2 selektorów z „wewnątrz” kapibary metody, czyli widziałem można ograniczyć zakres wykonując:

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

ale czy możemy filtrować to DIV, dodając w jakiś sposób id = 'first' i class = 'drawer'?

Wielkie dzięki!

Odpowiedz

35

Możesz łączyć selektory.

Na swoim pierwszym pytaniu następujących kontroli na div z id „pierwszy” i klasy „szuflady”:

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

Na drugie pytanie, blok within można użyć tego samego css selektor jak wyżej :

within('div#first.drawer') do 

Lub jeśli naprawdę wolą XPath można zrobić:

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

Dobre referencje dla css-selektorów: http://www.w3.org/TR/CSS2/selector.html

+0

Justin, co mogę powiedzieć ... Wielkie dzięki za wyjaśnienie, przykłady i link, po prostu niesamowity !!! :) – mickael

Powiązane problemy