2014-09-04 46 views
4

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

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

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

回答

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 
    }); 
}); 
+1

谢谢!我现在正处于不同的分支中,但我会尽快查看您的答案。 – SomeKittens 2014-09-04 23:16:44

+0

解决了这个问题,但是阅读该测试是一件痛苦的事情。无论在这些测试中都没有断言。另外,困难的睡眠总是不好的。试图使用browser.wait函数 – 2014-10-16 21:29:28

+2

等待是为了简化答案,这不是问题的关键。双击e2e测试真的太痛苦了吗?在堆栈溢出中总是欢迎更好的答案,所以请随时发布一个。 – 2014-10-16 21:52:58

相关问题