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]