javascript - 如何使用 Protractor 在 Monaco Editor 中插入代码?

标签 javascript angularjs typescript protractor monaco-editor

我正在尝试使用 Protractor 来测试包含 Monaco Editor 的代码,但找不到如何以编程方式编辑代码。

这是我的测试

import {CodelabPage} from './app.po';
import {browser, element, by} from 'protractor';

describe('codelab App', function () {
  let page: CodelabPage;

  beforeEach(() => {
    page = new CodelabPage();
  });

  it('should display message saying app works', () => {
      page.navigateTo();
      page.openMilestone(1);
      page.openExercise('TypeScript');
      browser.pause(2000);
      page.editCode('Dog.ts', `HopHeyLalalay`);
      browser.pause();
    }
  );
});

这是我的功能

import {browser, element, by} from 'protractor';
import {By} from "protractor/built/index";

export class CodelabPage {
  navigateTo() {
    return browser.get('/');
  }

  getMilestoneDescriptionText() {
    element(by.css('.milestone')).click();

    return element(by.css('.description')).getText();
  }

  getElementText(nameElement) {
    return element(by.css(nameElement)).getText();
  }


  openMilestone(index) {
    return element(by.cssContainingText('.milestone', index)).click();
  }

  openExercise(text) {
    return element(by.cssContainingText('.exercise', text)).click();
  }

  editCode(filename: string, code: string) {
    return element(by.css('.monaco-editor-background textarea'))
      .sendKeys('njnj');
  }
}

帮助了解如何在 Monaco Editor 代码或仅在摩纳哥粘贴代码。

最佳答案

Monaco 编辑器公开了一个 API,您可以使用它来编辑文本区域。你可以试试这个:

  browser.executeScript('this.monaco.editor.getModels()[0].setValue("' + yourStringHere + '"));

如果您使用 iframe,则需要在尝试编辑代码之前切换到 iframe,如下所示:

browser.switchTo().frame(iframeSelector);

关于javascript - 如何使用 Protractor 在 Monaco Editor 中插入代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40830303/

相关文章:

typescript - AWS Javascript SDK v3 - Typescript 由于错误 TS2304 : Cannot find name 'ReadableStream' 而无法编译

javascript - React - 无法调用的表达式

javascript - 意外的字符串常量 Javascript

javascript - 如何将附加变量传递给 .addEventListener 中的监听器

javascript - Angular UI 掩码验证

javascript - 动态 Angular 组件中的 Three.js 渲染

javascript - Symfony2 highcharts,改变颜色

javascript - 尝试使用 $rootScope 实现指令并收到 TypeError : Cannot read property '$on' of undefined

angularjs - Angular UI Bootstrap 模态

sqlite - 使用executeSql进行多重插入