如何使用Protractor将Keys发送到ui-ace实例?

Som*_*ens 4 javascript ace-editor angularjs angular-ui protractor

我想针对一个ui-ace实例测试一些按键.然而,量角器无法专注于ace元素.Ace包括<textarea>可以关注的(因此发送密钥),但ui-ace不识别在那里输入的密钥(并且随后不更新模型).

选择方法(by.model等)没有影响.

我目前的解决方法是使用evaluate手动设置范围值,但这打破了使用Protractor的重点.

Leo*_*cci 9

好问题!似乎解决方法是先双击.

以下内容至少适用于Chrome:

"use strict";
describe('Testing ui-ace', function() {
    var divInput = $('div.ace_content');
    var inputElm = $('textarea.ace_text-input');

    it('opens a ui-ace page', function() {
        browser.ignoreSynchronization = true;  // sorry but no angular page
        browser.get('http://angular-ui.github.io/ui-ace/');
        browser.sleep(3000); // sorry but no angular page
    });

    it('starts editing', function() {
        browser.actions().doubleClick(divInput).perform();
    });

    it('enters some text', function() {
        inputElm.sendKeys('Hola');
        browser.sleep(5000); // to let you see the result
    });
});
Run Code Online (Sandbox Code Playgroud)

  • 等待是为了简化答案,这不是问题所在.双击e2e测试真的太痛苦了吗?Stack Overflow总是欢迎更好的答案,所以请随意发一个. (2认同)