【问题标题】:How do I sendKeys to a ui-ace instance with Protractor?如何使用 Protractor 将密钥发送到 ui-ace 实例?
【发布时间】:2014-09-04 22:31:32
【问题描述】:

我想针对ui-ace 实例测试一些按键。但是,Protractor 无法将注意力集中在 ace 元素上。 Ace 包含一个<textarea>,我可以关注它(并因此发送密钥),但ui-ace 无法识别在那里输入的密钥(因此不会更新模型)。 p>

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

我目前的解决方法是使用evaluate 手动设置范围值,但这打破了使用量角器的意义。

【问题讨论】:

    标签: javascript angularjs angular-ui protractor ace-editor


    【解决方案1】:

    好问题!看来解决方法是先双击。

    以下内容至少在 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
        });
    });
    

    【讨论】:

    • 谢谢!我现在在另一个分支中,但我会尽快查看您的答案。
    • 解决了问题,但阅读该测试是一个痛苦的黑客攻击。在这些测试中没有任何断言。此外,难睡总是不好的。尝试使用 browser.wait 功能
    • 等待是为了简化答案,这不是问题所在。双击一个e2e测试真的太痛苦了吗? Stack Overflow 总是欢迎更好的答案,所以请随时发布。
    • 谢谢你 x 10000000!这救了我。
    • 如何使用量角器从具有大约 200 多行 JSON 文本的 ace 编辑器中获取文本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多