title: How does implicit wait of Protractor interact with explicit wait?
body: <p>The misunderstanding happens when implicit wait is less than explicit:</p>
  
  <pre><code>var timeOut = 5000;
  var search = element(by.xpath(`//*[@name='qwer']`));
  browser.manage().timeouts().implicitlyWait(4000);
  browser.ignoreSynchronization = true;
  
  describe('Protractor Test', function () {
      beforeEach(function () {
          browser.get('https://www.google.com.ua');
      });
      it('EC', function () {
          console.log('START');
          // browser.sleep(timeOut);
          browser.wait(protractor.ExpectedConditions.presenceOf(search), timeOut);
      });
  });
  </code></pre>
  
  <p>Overall time: 8.613 seconds. Set implicitlyWait a second lower: 3000 and result is 6.865 seconds. How does it work under the hood?
  Big thanks in advance!</p>