Ruby Mechanize:textarea的多行值合并

Mar*_*rco 6 ruby mechanize

编辑:经过进一步测试,似乎问题是特定于站点的,理论上应该可以正常工作.


应该在多行上的Textarea值全部在一行上提交.

textarea_values = "value1\nvalue2"

form = page.form_with(:id => 'form_id_here')
form['my_textarea'] = textarea_values
submit = form.button_with(:value => 'Submit')
form.click_button(submit)
Run Code Online (Sandbox Code Playgroud)

提交的值value1\nvalue2不是按预期在多行上.

是否有其他方法可以添加我可以尝试的表单值?

asa*_*aki 0

就像评论中的@nash 一样,我无法理解上面示例中的问题。“\n”是一个控制字符(换行符,行标记)。

请参阅: http: //en.wikipedia.org/wiki/Control_character

因此,除非您使用单引号字符串(其中“\”转义不起作用),否则这种表示法没有任何问题。

如果您对这种表示法感到困惑,您还可以在 Ruby 中使用 HEREDOC 表示法:

textarea_values = <<VALUES
value1
value2
VALUES
Run Code Online (Sandbox Code Playgroud)

在缩进代码中,您还可以使用:

# ... code ...
  # ... code ...
    textarea_values = <<-VALUES
      value1
      value2
    VALUES
  # ... code ...
# ... code ...
Run Code Online (Sandbox Code Playgroud)

这里的区别是“<<-VALUES”中的连字符,这意味着您可以将 HEREDOC 结束标记设置为在代码中缩进。请注意,此示例中的值具有前导空格/制表符,因此您更喜欢第一个示例 - 它打破了整个代码块的缩进,但值行没有前导空格。

对于巨大的文本区域输入,我真的更喜欢 HEREDOC 表示法,它使事情变得更容易且更具可读性。

有关 HEREDOC 的更多信息:

关于 Ruby 字符串使用的所有内容: