32

次のような HTML がある場合:

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

次のようにして、Capybara で href の値を取得できることがわかりました。

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式があるので、それを直接使用して問題の属性の値を取得することは何とか可能でしょうか?

ありがとうございました...

4

3 に答える 3

3

これを行うことができた唯一の方法は、jQuery を使用することです。

href = page.evaluate_script("$('a.link_class').attr('href');")
于 2012-12-18T20:22:11.433 に答える