[英]How can I set the value of a CodeMirror editor using Javascript?
[英]How can I clear a Codemirror editor field from Cypress
我已经从另一个 SO 答案中尝试过类似的方法如何在 codemirror 编辑器中使用 cypress.type() 输入?
如果它有帮助,这是我正在使用https://testing-playground.com/在 Cypress 上工作的网站
// CodeMirror's editor doesn't let us clear it from the
// textarea, but we can read the Window object and then
// invoke `setValue` on the editor global
cy.window().then(win => {
win.editor.setValue("")
})
我遇到的问题是,当我尝试实现此功能时,编辑器undefined
。 我尝试深入研究 Window object 并找不到任何类似于 Codemirror 编辑器的东西。 在任何其他 Codemirror 元素上运行.clear({force: true})
不会产生任何结果,只是在文本字段上运行.type({force: true})
将新内容与旧内容一起添加。
我最终使用的解决方案看起来类似于问题中的代码块,但有一些更改。
我没有从赛普拉斯获得 window object; CodeMirror 编辑器不存在。
我使用了 Evan Plaice 给我的与 DOM 上的 Editor 实例相关的想法,然后手动搜索 CodeMirror DOM 层次结构以找到它。
生成的代码将清除一个特定的编辑器,有两个所以[0]
是必要的。
cy.get('.CodeMirror')
.first()
.then((editor) => {
editor[0].CodeMirror.setValue('');
});
非常不直观,但您可以通过交换新的 CodeMirror 文档实例来更新内容
editor.swapDoc(CodeMirror.Doc([contents],[language]));
这就是我在wc-codemirror上处理内容更新的方式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.