Подтвердить что ты не робот

Capybara: возможно ли получить значение атрибута из строки css?

Если у меня есть HTML-код:

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

Я видел, что могу получить значение href в Capybara с помощью:

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

Но есть ли способ получить это значение, если он полностью описан как строка css? т.е. пытаться получить значение для 'div # drawer a [href]'

Я пробовал с такими выражениями:

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'

У меня есть выражение css во внешнем файле конфигурации, так можно ли как-то просто использовать его напрямую и получить значение соответствующего атрибута?

Спасибо...

4b9b3361

Ответ 1

Возможно, слишком поздно. Но у меня также была та же проблема и нашел решение. Это может помочь кому-то другому.

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

Ответ 2

Единственный способ, которым я смог это сделать, - это jQuery.

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