base.py 938 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from __future__ import absolute_import
  2. class BasePage(object):
  3. """Base class for PageObjects"""
  4. def __init__(self, browser):
  5. self.browser = browser
  6. @property
  7. def driver(self):
  8. return self.browser.driver
  9. class BaseElement(object):
  10. def __init__(self, element):
  11. self.element = element
  12. class ButtonElement(BaseElement):
  13. label_attr = 'aria-label'
  14. disabled_attr = 'aria-disabled'
  15. @property
  16. def disabled(self):
  17. return self.element.get_attribute(self.disabled_attr)
  18. @property
  19. def label(self):
  20. return self.element.get_attribute(self.label_attr)
  21. def click(self):
  22. self.element.click()
  23. class ButtonWithIconElement(ButtonElement):
  24. @property
  25. def icon_href(self):
  26. return self.element.find_element_by_tag_name('use').get_attribute('href')
  27. class TextBoxElement(BaseElement):
  28. pass
  29. class ModalElement(BaseElement):
  30. pass