Source code for pytoolbox.selenium.common

# pylint:disable=no-member

from . import exceptions

__all__ = ['FindMixin']


[docs]class FindMixin(object):
[docs] @staticmethod def clean_elements(elements, criteria, force_list=False, fail=True): if elements: return elements if force_list or len(elements) > 1 else elements[0] if fail: raise exceptions.NoSuchElementException(criteria) return None
[docs] def find_css(self, css_selector, prefix=True, force_list=False, fail=True): assert prefix # Not implemented elements = self.find_elements_by_css_selector(css_selector) return self.clean_elements(elements, css_selector, force_list, fail)
[docs] def find_id(self, element_id, prefix=True, force_list=False, fail=True): return self.find_css(f'#{element_id}', prefix, force_list, fail)
[docs] def find_name(self, element_name, prefix=True, force_list=False, fail=True): return self.find_css(f'[name={element_name}]', prefix, force_list, fail)
[docs] def find_xpath(self, xpath, force_list=False, fail=True): return self.clean_elements(self.find_elements_by_xpath(xpath), xpath, force_list, fail)