getText不是函数错误 - 量角器(javascript)

时间:2017-04-27 13:50:51

标签: javascript selenium-webdriver protractor automated-tests

我安装了node.js并安装了量角器。我有使用selenium-webdriver的经验但是Protractor让我疯了!我也不熟悉javascript。

这就是我的代码:

describe('My app', function() {

    var result = element(by.id('result-name'));
    var enterBtn = element(by.id('enter'));
    var clearFieldBtn = element(by.id('clear-field'); 

    it('should bring up components on load', function() {
        browser.get(`http://localhost:${process.env.PORT}`);
        browser.wait(until.titleContains('Sample App'), 500);
        browser.wait(until.presenceOf(browser.element(by.id('my-test-app'))), 500);

        expect(enterBtn).isPresent;
      });

    it('result should equal username', function () {
        browser.get(`http://localhost:${process.env.PORT}`);

        expect(clearFieldBtn).isPresent;
        expect(result.getText()).toEqual('John Smith'); //both tests pass without this line of code   

    });

});

最后一行“expect(result.getText())。toEqual('John Smith');”抛出一个错误。我明白了:

expect(...).toEqual is not a function

非常感谢任何帮助。我花了几个小时试图寻找解决方案并尝试不同的事情。

我还想在api文档中实现isPresent函数,如下所示:expect($('。item')。isPresent())。toBeTruthy();

我试着这样做:

expect(clearFieldBtn).isPresent().toBeTruthy();

但我明白,现在不是一个功能......

2 个答案:

答案 0 :(得分:2)

高于该线的预期似乎很差。它应该读

expect(clearFieldBtn.isPresent()).toBeTruthy();

不确定这是否导致下面这行奇怪的错误...只是想我会把它扔出去。您需要在期望中调用所有量角器API,因为isPresent不是expect的属性

答案 1 :(得分:1)

您是否尝试过以下这些专栏:

    clearFieldBtn.isPresent().then(function(bln) {
         expect(bln).toBe(true);
    });

    result.getText().then(function(tmpText) {
         expect(tmpText).toBe('John Smith');
    });

如果在result.getText()上仍然出现错误,请检查结果对象是否存在。