Capybara:是否可以从css字符串中获取属性值?

mic*_*ael 27 capybara

如果我有一些像这样的HTML:

<div id='drawer'><ul><li><a href='www'>description</a>...
Run Code Online (Sandbox Code Playgroud)

我已经看到我可以在Capybara获得href的值:

page.find('div#drawer a')['href']
Run Code Online (Sandbox Code Playgroud)

但有没有办法检索该值,如果它被完全描述为一个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'
Run Code Online (Sandbox Code Playgroud)

我在外部配置文件中有css表达式,所以有可能以某种方式直接使用它并检索有问题的属性的值吗?

谢谢...

Leo*_*ves 62

可能太晚了.但我也有同样的问题,并找到了解决方案.它可能会帮助别人.

page.find('div#drawer a')[:href]
Run Code Online (Sandbox Code Playgroud)

  • `[:'data-something']`也可以. (6认同)