Capybara:获取<script>标签内的内容?

时间:2015-11-20 04:07:20

标签: ruby-on-rails capybara

将Capybara与Rails一起使用,我希望使用位于&lt; body&gt; 下的&lt; script&gt; 标记来获取内容。当我运行此代码时,返回的值为空。有没有办法在&lt; body&gt; 中的&lt; script&gt; 标记内获取内容?:

&#xA;&#xA; < pre> page.all('body script',visible:false).each do | el |&#xA;把'脚本:'&#xA;把el.value.to_s&#xA; end&#xA; &#xA;&#xA;

我也试过 puts el.text.to_s 也有相同的结果。

&#xA;&#xA;

有许多脚本标记元素(在上面的代码中都打印为空白)。脚本标记的一个示例:

&#xA;&#xA;
 &lt; script&gt;&#xA; sConfig.backendTime = 655;&#xA;&lt; / script&gt;&# XA;  
&#XA;

2 个答案:

答案 0 :(得分:3)

Capybaras #text方法采用参数来确定是否返回隐藏文本,以下内容适用于所有驱动程序

page.all('body script', visible: false).each do |el|
  puts 'script: '
  puts el.text(:all)
end

答案 1 :(得分:1)

您需要使用native方法,如下所示:

page.all('body script', visible: false).each do |el|
  puts 'script: '
  puts el.native.text
end