     end
   end
 
+  @spec check_status(response) :: {:ok, response} | {:error, String.t()}
   defp check_status(response) do
     case Map.get(response, "status") do
       @status_obscured ->

  @type url :: String.t()
  @type params :: map | String.t()
  @type request_opts :: {:encode_json, boolean}

  @status_obscured 13
  # The maximum time we'll sleep is for 50ms

    end
  end

  @spec handle_response({:ok, HTTPoison.Response.t()} | {:error, HTTPoison.Error.t()}) ::
          {:ok, response}
          | {:error, web_driver_error_reason | Jason.DecodeError.t() | String.t()}
          | {:error, :httpoison, HTTPoison.Error.t()}
          | no_return
  defp handle_response(resp) do
    case resp do
      {:error, %HTTPoison.Error{} = error} ->
