Karate 如何修改指定HTML标签内的文本内容以操作CodeMirror组件
Karate修改CodeMirror组件指定内容的实现方案
两种实现方式可根据你的实际需求选择:
方案1:Karate原生DOM操作(仅修改页面渲染内容)
适合仅需修改前端DOM展示,不需要同步编辑器内部状态的场景:
# 定位class为cm-string的span元素,多个匹配可加父级选择器缩小范围 * def targetSpan = locate("span.cm-string") # 替换为你需要的目标内容,注意保留原有的引号格式 * targetSpan.text = '"https://你需要替换的新地址"'
方案2:调用JS操作CodeMirror内置API(推荐,同步组件内部状态)
直接修改DOM不会同步到CodeMirror的内部存储数据,后续提交表单/获取编辑器内容时可能仍返回旧值,优先选择该方案:
* script(""" // 获取CodeMirror实例,根据你页面编辑器的实际容器选择器调整即可 const cmInstance = document.querySelector('.CodeMirror').CodeMirror // 替换目标字符串为新值 const editorContent = cmInstance.getValue() const updatedContent = editorContent.replace('https://reservation-api-env-a1.xxx.xxxxx.com', 'https://你的新目标地址') // 把修改后的内容写回编辑器 cmInstance.setValue(updatedContent) """)
注意事项
如果页面存在多个cm-string类的元素,可给选择器增加父容器ID/类名做精确匹配,避免误改其他元素内容。
内容的提问来源于stack exchange,提问作者Radim Bukovský
相关产品推荐
相关产品推荐

