You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular中用Protractor获取嵌入式g-ace-editor文本?

如何获取Ace编辑器中的文本内容?

嘿,我太懂你遇到的这个问题了!Ace编辑器的内容根本不是存在DOM元素的value属性或者文本节点里的,它是在自己独立的JavaScript实例里管理内容的,所以你用常规的getText()或者getAttribute('value')肯定拿不到东西,连sendKeys的返回值也帮不上忙。

不过别担心,我们可以直接调用Ace编辑器自身的API来获取内容,具体步骤如下:

  • 首先定位到你的g-ace-editor容器元素
  • 通过执行JavaScript代码,获取Ace编辑器的实例,然后调用它的getValue()方法拿到内容

举几个常见测试框架的代码例子:

Selenium Java示例

// 执行JS脚本获取编辑器内容
String editorContent = (String) ((JavascriptExecutor) driver).executeScript(
    "return ace.edit(document.querySelector('g-ace-editor')).getValue();"
);

Selenium Python示例

# 执行JS脚本获取编辑器内容
editor_content = driver.execute_script(
    "return ace.edit(document.querySelector('g-ace-editor')).getValue();"
)

小提示

如果你的g-ace-editor内部还有更具体的Ace编辑器元素(比如带有.ace_editor类的子元素),可以调整选择器为document.querySelector('g-ace-editor .ace_editor');要是编辑器是通过ID绑定的,直接用ace.edit('你的编辑器ID')会更准确,你可以根据自己实际的HTML结构灵活调整。

这样拿到内容后,你就能和输入的文本对比,验证sendKeys是否执行成功啦!

内容的提问来源于stack exchange,提问作者Chitwant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:50:04