>我有一个只有一个输入框和一个提交按钮的表单,其中提交按钮被禁用,直到用户在文本框中填写某些内容。
不幸的是,当我检查屏幕截图"form.png"时,即使我已经填写了一个值,提交按钮仍然被禁用。
规范:
scenario 'valid', js: true do
fill_in 'Name', with: 'Hello World'
page.save_screenshot('form.png')
end
咖啡/JS:
$('#name').keyup ->
if $('#name').val() != ''
$('#submit').removeClass('disabled').removeAttr('disabled')
else
$('#submit').addClass('disabled').attr('disabled', 'disabled')
Haml/html:
= f.input :name, label: 'Name'
= f.submit 'Save', class: 'btn btn-primary form-btn', id: 'submit', disabled: true
Poltergeist 在填写输入文本字段时肯定会产生 keydown/keyup 事件,所以听起来你的 JS 没有运行。确保你没有任何依赖于大于 ES5 的功能的 JS 代码,因为 PhantomJS 不支持它或错误。 在测试模式下,所有 JS 资产都会连接起来,这意味着任何一个文件中的错误都可能阻止评估其他文件中的代码。一旦你清理了它,你应该能够做到
click_button 'Save'