def __getitem__(self, item):
if not self._query_multiple:<EOL><INDENT>nodes = self._do_query(multiple=True, refresh=True)<EOL><DEDENT>else:<EOL><INDENT>nodes = self._nodes<EOL><DEDENT>length = len(nodes)<EOL>if not self._sorted_children:<EOL><INDENT>self._sorted_children = []<EOL>for i in range(length):<EOL><INDENT>uiobj = UIObjectProxy(self.poco)<EOL>uiobj.query = ('<STR_LIT:index>', (self.query, i))<EOL>uiobj._evaluated = True<EOL>uiobj._query_multiple = True<EOL>uiobj._nodes = nodes[i]<EOL>uiobj._nodes_proxy_is_list = False<EOL>pos = uiobj.get_position()<EOL>self._sorted_children.append((uiobj, pos))<EOL><DEDENT><DEDENT>self._sorted_children.sort(key=lambda v: (v[<NUM_LIT:1>][<NUM_LIT:1>], v[<NUM_LIT:1>][<NUM_LIT:0>]))<EOL>return self._sorted_children[item][<NUM_LIT:0>]<EOL>
Select the specific UI element by index. If this UI proxy represents a set of UI elements, then use this method
to access the specific UI element. The new UI element will be wrapped by UIObjectProxy instance and therefore
the returned value is also the UI proxy object.

The order of UI elements are determined by their position on the screen and not by the selection sequence. This
rule is called  "L2R U2D" (one by one from left to right, line by line from up to down), i.e. the most top left
UI element is always the first one. See ``IterationOverUI`` for more details.

Warnings:
    This method may cause some performance issues depending on implementation of PocoAgent.

Args:
    item (:obj:`int`): the index.

Returns:
    :py:class:`UIObjectProxy <poco.proxy.UIObjectProxy>`: a new UI proxy object representing the n-th of the
    current UI elements.