docs: def response_result(self, **kwargs):
          """ default will fetch MAX_AP pages
          yield `self.driver.page_source, self.driver.current_url, 1`
  
          after mock submit, the first page is crawled.
          so start@ index of 1, and yield first page first
          when running over, use else to yield the last page.
  
          程序运行到此, 已经load 了第一页, 故在进行操作 `点击下一页` 之前, 需要 yield
          range(1, page_togo), 则在 page_togo - 1时跳出循环,
          此时程序 已经完成点击了下一页, 故 page_togo 这一页已经 load 完成, 故在 else 跳出时 yield
          """
          page_togo = kwargs.get('page_togo', self.max_page_togo)
          if page_togo <= 1:
              return self.robot.driver.page_source, self.robot.driver.current_url, 1
  
          # 从 `1` 开始是由于已经加载了第一页
          # 到 `page_togo` 结束, 是因为在 `page_togo -1` 时,已经点击了下一页
          # 因此此处不能写为 range(0, page_togo), 或者(1, page_togo + 1)
          yield_last = kwargs.get('yield_last', False)
          start_yval = 0
          for page_done in range(1, page_togo):
              # log.debug(self.robot.driver.current_url)
              if not yield_last:
                  yield self.robot.driver.page_source, self.robot.driver.current_url, page_done
              # click any popups
              self.mock_popovers()
  
              if self.has_next_page(page_done):
                  start_yval = self.goto_next(start_yval)
              else:
                  # 如果无下一页, 直接退出
                  log.debug('page {} is the last result page!'.format(page_done))
                  break
          else:
              if not yield_last:
                  yield self.robot.driver.page_source, self.robot.driver.current_url, page_togo
  
          if yield_last:
              yield self.robot.driver.page_source, self.robot.driver.current_url, page_togo