Core functions¶
Core functions are reusable shortcuts that all elements can use.
-
sda.shortcuts.
generate_elements
(_class, locator)¶ Iterate through all elements returned and create an instance of _class for each
Parameters: - _class (Element) – Class to create instances from
- locator – SDA Locator. ex. (‘xpath’, ‘//element/path/here’)
Returns:
from sda.core import generate_elements
from sda.element import Element
from selenium.webdriver.common.by import By
from selenium import webdriver
# Locator
class FooLocators(object):
BAR_LOCATOR = (By.XPATH, '//some/locator')
# Can be fixture or structure
class Bar(object):
def __init__(self, web_driver, by, path):
self._driver = web_driver
self.element = Element(web_driver=web_driver, by=by, path=path)
# Can be fixture or page
class Foo(object):
def __init__(self, web_driver):
self.driver = web_driver
# Essentially what generate elements will do is find all elements that return from the selector and then append
# an index at the end of the selector expression. Make sure to use XPATH. There will be support for other
# selector types other than By.XPATH, but this is the only way that it will properly work. Always remember to
# return the web driver element!
@generate_elements(Bar, FooLocators.BAR_LOCATOR)
def bars(self):
return self.driver
wd = webdriver.Firefox()
f = Foo(wd)
# Returns all the foobar instances it can find
bars = f.bars()