code: def start_session(self, capabilities, browser_profile=None):
          
          if not isinstance(capabilities, dict):
              raise InvalidArgumentException("Capabilities must be a dictionary")
          if browser_profile:
              if "moz:firefoxOptions" in capabilities:
                  capabilities["moz:firefoxOptions"]["profile"] = browser_profile.encoded
              else:
                  capabilities.update({'firefox_profile': browser_profile.encoded})
          w3c_caps = _make_w3c_caps(capabilities)
          parameters = {"capabilities": w3c_caps,
                        "desiredCapabilities": capabilities}
          response = self.execute(Command.NEW_SESSION, parameters)
          if 'sessionId' not in response:
              response = response['value']
          self.session_id = response['sessionId']
          self.capabilities = response.get('value')
  
          # if capabilities is none we are probably speaking to
          # a W3C endpoint
          if self.capabilities is None:
              self.capabilities = response.get('capabilities')
  
          # Double check to see if we have a W3C Compliant browser
          self.w3c = response.get('status') is None
          self.command_executor.w3c = self.w3c
docs: Creates a new session with the desired capabilities.
  
          :Args:
           - browser_name - The name of the browser to request.
           - version - Which browser version to request.
           - platform - Which platform to request the browser on.
           - javascript_enabled - Whether the new session should support JavaScript.
           - browser_profile - A selenium.webdriver.firefox.firefox_profile.FirefoxProfile object. Only used if Firefox is requested.