capybara - uso - Capibara, verificando elemento HTML por ID y Clase
id y class en css (1)
Dos preguntas de un principiante.
P1- ¿Es posible afirmar la existencia de un nodo HTML por ID y clase? Por ejemplo, para ver si existe el siguiente elemento:
<div class="drawer" id="first"....>
He visto que puedes usar algo como:
page.should have_css(''div.drawer'')
page.should have_css(''div#first'')
pero, de alguna manera, podemos consultar la existencia de ambos parámetros. He intentado lo siguiente y no funcionó:
page.should have_selector("div", :class => "drawer", :id => "first")
P2: ¿Es posible agregar 2 selectores al método ''dentro'' de la capibara, es decir, he visto que puede limitar el alcance haciendo:
within("//div[@id=''first'']") do
pero, ¿podemos filtrar ese DIV agregando de alguna manera id = ''first'' y class = ''drawer''?
¡Muchas gracias!
Puedes combinar los selectores.
Para su primera pregunta, lo siguiente busca un div con id "first" y clase "drawer":
page.should have_css(''div#first.drawer'')
Para su segunda pregunta, el bloque within
puede usar el mismo selector css que el anterior:
within(''div#first.drawer'') do
O si realmente prefieres xpath, puedes hacer:
within("//div[@id=''first'' and @class=''drawer'']") do
Una buena referencia para css-selectores: http://www.w3.org/TR/CSS2/selector.html