2

I am working on testing a non angular js website with protractor.

My test case runs successfully but I want to remove sleep statement and either add wait or Expected condition to my Test case.

My code is as follows:

var co = require('co');
var path = require('path');

describe("TEST ", function () {

    it("test", co.wrap(function* () {
         browser.ignoreSynchronization = true;
        var EC = protractor.ExpectedConditions;
        yield browser.get('URL');
        browser.wait(function () {
            return browser.driver.isElementPresent(by.css(a[href = "#login"]));
        }, 30000);
        var elmOK = browser.driver.findElement(by.css('a[href="#login"]'));
        yield elmOK.click();
        expect(browser.getCurrentUrl()).toContain("login");
        yield browser.switchTo().frame('here-account-sdk').then(function () {
            browser.driver.findElement(by.id('sign-in-email')).sendKeys("supplier_portal@yahoo.com");
            browser.driver.findElement(by.id('sign-in-password-encrypted')).sendKeys("voting123");
            browser.driver.findElement(by.xpath(' //*[@id="sign-in-form"]/div[2]/div[6]/form/fieldset[3]/button')).click();

        });
        //  browser.sleep(5000);
        var elmOK = browser.driver.findElement(by.xpath('//*[@id="lnav"]/li[3]/a'));
        yield elmOK.click();
        //  browser.sleep(1500);
        browser.driver.findElement(by.xpath('//*[@id="administration"]/div/div[1]/select/option[2]')).click();
        //    browser.sleep(5000);

        browser.driver.findElement(by.xpath('//*[@id="administration"]/div/div[2]/table/tbody/tr[1]/td[10]/span')).click();
        //     browser.sleep(5000);

        browser.driver.findElement(by.xpath('//*[@id="content"]/div/div[2]/div/div/div/div[3]/button[1]')).click();
        //    browser.sleep(5000);
    }));




});

When I try to run my test I get following error. I don't know how to fix it.

---------------- Spec started:  ----------------                                                                                               
F[13:57:01] E/launcher - Cannot read property '_failures' of undefined                                                                                                             
[13:57:01] E/launcher - TypeError: Cannot read property '_failures' of undefined                                                                                                   
    at null.self.specDone (C:\Users\jasharma\gitrepo\supplier-portal\node_modules\jasmine-reporters\src\junit_reporter.js:274:46)                                                  
    at dispatch (C:\Users\jasharma\gitrepo\supplier-portal\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1966:28)                                  
    at ReportDispatcher.specDone (C:\Users\jasharma\gitrepo\supplier-portal\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1949:11)                 
    at Spec.specResultCallback [as resultCallback] (C:\Users\jasharma\gitrepo\supplier-portal\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:903:18)

    at complete (C:\Users\jasharma\gitrepo\supplier-portal\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:368:12)                                   
    at QueueRunner.clearStack (C:\Users\jasharma\gitrepo\supplier-portal\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:660:9)                      
    at QueueRunner.run (C:\Users\jasharma\gitrepo\supplier-portal\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1881:12)                           
    at C:\Users\jasharma\gitrepo\supplier-portal\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1898:16                                             
    at C:\Users\jasharma\gitrepo\supplier-portal\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1842:9                                              
    at C:\Users\jasharma\gitrepo\supplier-portal\node_modules\jasminewd2\index.js:18:5                                                                                             
[13:57:01] E/launcher - Process exited with error code 199                                                                                                                         

Please help?

mplungjan
  • 169,008
  • 28
  • 173
  • 236
Jatin
  • 660
  • 3
  • 8
  • 28

1 Answers1

0

Is this:

 yield browser.switchTo().frame('here-account-sdk').then(function () {
        browser.driver.findElement(by.id('sign-in-email')).sendKeys("supplier_portal@yahoo.com");
        browser.driver.findElement(by.id('sign-in-password-encrypted')).sendKeys("voting123");
        browser.driver.findElement(by.xpath(' //*[@id="sign-in-form"]/div[2]/div[6]/form/fieldset[3]/button')).click();

    });

the only part that you have that is not angular related? If so, try to add browser.switchTo().defaultContent(); before var elmOK = browser.driver.findElement(by.xpath('//*[@id="lnav"]/li[3]/a'));.