Source code for nerodia.elements.list

import six

from ..elements.html_elements import LICollection, HTMLElement
from ..meta_elements import MetaHTMLElement


[docs]class List(object): def __iter__(self): """ Yields each LI associated with this list :rtype: iter :Example: divs = browser.divs(class='kls') for li in browser.ol(): print(li.text) """ for e in self.list_items: yield e def __getitem__(self, idx): """ Returns item from this list at the given index :param idx: index of wanted element, 0-indexed :type idx: int :return: instance of Element subclass :rtype: nerodia.elements.element.Element """ return self.list_items[idx] def __len__(self): """ Returns the number of elements in the list :rtype: int """ return len([_ for _ in self]) @property def list_items(self): return LICollection(self, {'adjacent': 'child', 'tag_name': 'li'})
[docs]@six.add_metaclass(MetaHTMLElement) class OList(HTMLElement, List): pass
[docs]@six.add_metaclass(MetaHTMLElement) class UList(HTMLElement, List): pass