title: async await in Protractor is ignored
body: <p>I'm new to testing and JS in general. I'm trying to write my first async await test but I cannot make it work.</p>
  
  <p>I have set <code>protractor.promise.USE_PROMISE_MANAGER = false</code>; to be able to use <code>async await</code>.</p>
  
  <p>When I set the selenium promise manager to false, I receive as expected the error <code>TypeError: Unable to create a managed promise instance: the promise manager has been disabled by the SELENIUM_PROMISE_MANAGER environment variable: undefined.</code></p>
  
  <p>However, when I add async await to all the abstraction layers in the code, the same error is persisting. How can I make the following test work with <code>async await</code>?</p>
  
  <p><strong>login.spec.js</strong></p>
  
  <pre><code>protractor.promise.USE_PROMISE_MANAGER = false;
  
  describe('Login page :', () =&gt; {
    const loginPage = new objects.Login(),
          el = new objects.Element(),
          ec = new objects.ExpectedCondition()
  
  
    beforeAll( async () =&gt; {
      await loginPage.go();
    });
  
    describe('with invalid credentials', () =&gt; {
  
      beforeEach( async () =&gt; {
        await browser.refresh();
      }); 
  
      it('should fail to log in without credentials', async () =&gt; {
        await loginPage.submit();
  
        await expect(ec.isVisible(loginPage.selectors.login.errors.lblEmailValidation));
        await expect(ec.isVisible(loginPage.selectors.login.errors.lblPasswordValidation));
      });
  </code></pre>
  
  <p><strong>login.po.js</strong></p>
  
  <pre><code>class Login {
    ...
    async submit() {
      await this.element.clickElement(this.selectors.login.button.btnSubmit)
    }
    ...
  }
  </code></pre>
  
  <p><strong>element.js</strong></p>
  
  <pre><code>class Element {
  ...
    async clickElement(selector) {
      return await this.getElement(selector).click();
    }
  ...
  }
  </code></pre>
  
  <p><strong>expectedCondition.js</strong></p>
  
  <pre><code>const EC = protractor.ExpectedConditions;
  
  class ExpectedCondition {
    constructor() {
     this.el = new objects.Element();
    }
  
   async isVisible(selector) {
      return await browser.wait(EC.visibilityOf(this.el.getElement(selector)));
    }
  }
  </code></pre>
  
  <p><strong>element.js</strong></p>
  
  <pre><code>class Element {
    getElement(selector) {
      return element(by.css(selector));
    }
    ...
  }
  </code></pre>
  
  <p><strong>The error I get:</strong></p>
  
  <pre><code>Failures:
  1) Login page : with invalid credentials should fail to log in without credentials
    Message:
      TypeError: Unable to create a managed promise instance: the promise manager has been disabled by the SELENIUM_PROMISE_MANAGER environment variable: undefined
    Stack:
      TypeError: Unable to create a managed promise instance: the promise manager has been disabled by the SELENIUM_PROMISE_MANAGER environment variable: undefined
          at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1030:13)
          at new Deferred (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1454:20)
          at new Task (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2778:5)
          at ControlFlow.execute (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2477:16)
          at UserContext.&lt;anonymous&gt; (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
  </code></pre>