def navigate(self, name: str, selector: str | None) -> CommandClient:
        """Resolve the given object in the command graph

        Parameters
        ----------
        name: str
            The name of the command graph object to resolve.
        selector: str | None
            If given, the selector to use to select the next object, and if
            None, then selects the default object.

        Returns
        -------
        CommandClient
            The client with the given command graph object resolved.
        """
        if name not in self.children:
            raise SelectError("Not valid child", name, self._current_node.selectors)

        normalized_selector = _normalize_item(name, selector) if selector is not None else None
        if normalized_selector is not None:
            if not self._command.has_item(self._current_node, name, normalized_selector):
                raise SelectError(
                    "Item not available in object", name, self._current_node.selectors
                )

        next_node = self._current_node.navigate(name, normalized_selector)
        return self.__class__(self._command, current_node=next_node)
Resolve the given object in the command graph

        Parameters
        ----------
        name: str
            The name of the command graph object to resolve.
        selector: str | None
            If given, the selector to use to select the next object, and if
            None, then selects the default object.

        Returns
        -------
        CommandClient
            The client with the given command graph object resolved.
        
libqtile/command/client.py