我遇到了 Capybara 和 Selenium 的一个有趣问题。我有一些 Capybara 请求规范,需要在完成表单时启用 javascript。其中一种形式是使用 Redactor 富文本编辑器的文本区域。
<div class="control-group">
<%= f.label :description, "Description", class: "control-label" %>
<div class="controls">
<%= f.text_area :description, rows: 10, class: "redactor"%>
</div>
</div>
当测试运行并触发 Selenium(在 FF 和 Chrome 驱动程序中)时,Selenium 在以下命令上失败:
`fill_in "Description", with: "some description"`
它返回的错误是:
Selenium::WebDriver::Error::InvalidElementStateError:
Element is not currently interactable and may not be manipulated
Selenium 似乎无法再识别富文本编辑器/文本区域。如果我删除class="redactor"
which 是触发 Redactor JS 针对描述文本区域呈现的原因,它可以正常工作。
所以我的问题是,1. 是否有解决方法来填写?2. 或者,我可以以某种方式禁用编辑器 js 只是为了这个测试?