量角器以行号获取textarea的值

SDS*_*SDS 3 twitter-bootstrap angularjs protractor

我正在使用量角器来测试我的Bootstrap AngularJS应用程序。文本区域“输入”和“输出”具有与之关联的行号。因此,当我检查“输出”文本区域的值时element(by.id('output')).getText(),总是使用它returns line number'1'而不是文本区域内部的值。以下是html和spec.js文件的代码段

homepage.html

<div>
    <textarea id= "input" ui-codemirror="{ onLoad : editorLoaded }"
                        ng-model="input" ng-trim="false"></textarea>
    <textarea id="output" ui-codemirror="viewerOptions"
                    ng-model="output"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)

homepage.spec.js

describe('homepage', function() {

  it('check if output matches input', function() {
        browser.get('your url');
        var input = element(by.model('input'));
        input.sendKeys('abc;');
        var result = element(by.id('output'));
        expect(result.getText()).toEqual('abc;');
    });

});
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何指针???

Gir*_*tur 5

对于input和textarea元素,您应始终使用getAttribute('value')代替getText()。这是使用方法-

var result = element(by.id('output'));
expect(result.getAttribute('value')).toEqual('abc;');
Run Code Online (Sandbox Code Playgroud)

有关getText为什么不适用于输入元素的更多信息,请检查量角器常见问题解答:https : //github.com/angular/protractor/blob/master/docs/faq.md#the-result-of-gettext-from-输入元素总是空的

希望能帮助到你。