Ruby转义双引号

时间:2017-08-22 11:40:21

标签: ruby-on-rails ruby

有人可以帮我逃避双引号

 iframe_name = page.execute_script "$('#card-element').find('[name*="__privateStripeFrame"').first().attr('name')"

尝试了

 iframe_name = page.execute_script "$('#card-element').find('[name*=%Q[__privateStripeFrame]').first().attr('name')"

 iframe_name = page.execute_script "$('#card-element').find('[name*=\"__privateStripeFrame\"').first().attr('name')"

但得到了

TypeError (TypeError)

3 个答案:

答案 0 :(得分:2)

使用heredoc,它甚至可以更好地阅读:

iframe_name = page.execute_script <<JS
  $('#card-element').find('[name*="__privateStripeFrame"]').first().attr('name')
JS

答案 1 :(得分:1)

https://blog.appsignal.com/2016/12/21/ruby-magic-escaping-in-ruby.html

在Ruby中,您可以使用反斜杠字符转义双引号。

"foo\"bar\"" => 'foo"bar"'

答案 2 :(得分:0)

对不起家伙的问题在

page.execute_script

使用此方法TypeError为return

尝试使用

 page.evaluate_script

以存储返回值

frame_name = page.evaluate_script("$('#card-element').find('[name*=\"__privateStripeFrame\"]').first().attr('name')")