fill_in
接受输入id、名称、占位符或相关的标签文本,因此给定的HTML提供的以下任何一个都应该填充新的域输入
fill_in 'client_email_new_domain', with: 'whatever'
fill_in 'client_email[new_domain]', with: 'whatever'
fill_in 'New domain name', with: 'whatever'
如果其中任何一个都不起作用,那么实际上你并没有在一个页面上看到你认为存在的可见HTML。在这种情况下使用
@session.save_and_open_screenshot
看看页面的实际外观
@session.html
当您试图填充页面时,查看页面的HTML实际上是什么(假设@session实际上是您正在使用中测试的Capybara会话
page
否则为当前会话)。
要注意的一件事是,如果要将任何JS小部件行为附加到隐藏原始输入的输入上。如果是,则需要与小部件添加到页面的可见元素交互,而不是与隐藏的原始输入元素交互。
最后的可能性是
@session
实际上不是你访问页面的会话。不确定为什么要在实例变量中传递当前会话,除非要使用多个会话进行测试?