如何在 Capybara 中填充隐藏的输入字段?

How do I populate a hidden input field in Capybara?

我在前端有以下代码:

%input#nonce{ type: "hidden", name: "#{param_prefix}[payment_method_nonce]" }

安迪我的水豚代码:

hidden_field = find_field("input#nonce", type: :hidden)
hidden_field.set "fake-apple-pay-visa-nonce"

我收到这个错误:

Capybara::ElementNotFound: Unable to find field "input#nonce" that is not disabled of type :hidden

如何在 Capybara 中设置输入隐藏字段的值?

TL;DR;你没有。

Capybara 模拟用户,用户不能填写隐藏字段,因此 Capybara 也不能。尝试这样做通常表明您在测试中做错了什么,并且可能意味着您正在执行的测试毫无意义(因为它不会复制用户正在做的事情)

如果您仍然觉得自己真的需要填写隐藏字段,则需要使用 execute_script

通过 JS 完成