title: Page.evaluate() won't execute in a Promise chain
body: <p>Just started using Puppeteer. Trying to parse a page but the evaluate method won't work somehow.</p>
  
  <pre><code>var Browser
  var Page
  var Result
  puppeteer.launch()
    .then(function (browser) {
      console.log('Browser Created\nCreating Blank Page')
      Browser = browser
      return Browser.newPage()
    })
    .then(function (page) {
      console.log('Page Created\nVisiting URL')
      Page = page
      return Page.goto(URL)
    })
    .then(function (resp) {
      console.log('Website Loaded')
      return Page.evaluate(function () {
        // Completely Sync Stuff
        console.log('Evaluating Selectors')
        var myElems = document.getElementsByClassName('challenge-type light')
        Result = myElems
      })
    })
    .then(function (val) {
      console.log(Result)
      console.log('Done! Exiting')
      Browser.close()
      process.exit()
    })
    .catch(function (err) {
      Browser.close()
      console.log(err)
      process.exit(1)
    })
  </code></pre>
  
  <p>Output :</p>
  
  <pre><code>Browser Created
  Creating Blank Page
  Page Created
  Visiting URL
  Website Loaded
  undefined
  Done! Exiting
  </code></pre>
  
  <p>What could possibly be the error? Would prefer a solution without async/await.</p>
  
  <p><strong>EDIT:</strong> "Evaluating Selectors" is not logged to the console as well, so the code never reaches there, is my concern.</p>