selenium webdriver - getText is not a function error - Protractor (javascript) - Stack Overflow

I have node.js installed and protractor installed. I have experience with selenium-webdriver but Protra

I have node.js installed and protractor installed. I have experience with selenium-webdriver but Protractor is driving me nuts!!! I am also not that familiar with javascript.

This is what my code looks like:

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 ponents 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   

    });

});

The last line "expect(result.getText()).toEqual('John Smith');" throws me an error. I get:

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

Any help would be much appreciated. I have spent a couple of hours trying to find a solution and trying different things.

I also wanted to implement the isPresent function how it's done in the api docs which is like this: expect($('.item').isPresent()).toBeTruthy();

I tried to do:

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

But I get that isPresent is not a function...

I have node.js installed and protractor installed. I have experience with selenium-webdriver but Protractor is driving me nuts!!! I am also not that familiar with javascript.

This is what my code looks like:

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 ponents 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   

    });

});

The last line "expect(result.getText()).toEqual('John Smith');" throws me an error. I get:

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

Any help would be much appreciated. I have spent a couple of hours trying to find a solution and trying different things.

I also wanted to implement the isPresent function how it's done in the api docs which is like this: expect($('.item').isPresent()).toBeTruthy();

I tried to do:

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

But I get that isPresent is not a function...

Share edited Apr 27, 2017 at 13:56 learningruby347 asked Apr 27, 2017 at 13:50 learningruby347learningruby347 2331 gold badge4 silver badges12 bronze badges 2
  • Your title is misleading. The question/error isn't about getText(), its about your jasmine functions toEqual, toContain etc. – Gunderson Commented Apr 27, 2017 at 14:55
  • Also can you please post your config, what test library are you using? – Gunderson Commented Apr 27, 2017 at 14:57
Add a ment  | 

2 Answers 2

Reset to default 3

The expect above that line seems poor. It should read

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

not sure if that is causing the weird error on the line below...just thought I would throw it out there. All your protractor APIs need be be called within the expect because isPresent is not a attribute of expect

Have you tried these lines:

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

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

If you still get an error on result.getText(), please check the presence of the result object.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745060841a4608956.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信