varias selectores que mismo etiquetas estilo ejemplo clases avanzados aplicar capybara

capybara - que - selectores avanzados css



Capibara: ¿es posible obtener un valor de atributo de una cadena css? (2)

Si tengo algo de HTML como:

<div id=''drawer''><ul><li><a href=''www''>description</a>...

He visto que puedo obtener el valor de href en Capybara con:

page.find(''div#drawer a'')[''href'']

Pero, ¿hay alguna forma de recuperar ese valor si se describe completamente como una cadena css? es decir, tratando de obtener el valor para ''div # drawer a [href]''

Lo he intentado con expresiones como esta:

page.find(''div#drawer a[href]'') => can''t convert Capybara::Node::Element into String (TypeError) page.find(''div#drawer a[href]'').value => can''t convert nil into String (TypeError) page.find(''div#drawer a[href]'').text => returns the text value of ''description''

Tengo esa expresión css en un archivo de configuración externo, ¿sería posible, de alguna manera, utilizarla directamente y recuperar el valor del atributo en cuestión?

Gracias...


La única forma en que he podido hacer esto es con jQuery.

href = page.evaluate_script("$(''a.link_class'').attr(''href'');")


Probablemente demasiado tarde. Pero también tuve el mismo problema y encontré la solución. Podría ayudar a alguien más.

page.find(''div#drawer a'')[:href]