mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-06-04 07:29:07 +00:00
55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
"""WebDriver element location functionality."""
|
|
|
|
class SearchContext(object):
|
|
"""Abstract class that provides the core element location functionality."""
|
|
|
|
def find_element_by_css(self, selector):
|
|
"""Find the first element matching a css selector."""
|
|
return self._find_element('css selector', selector)
|
|
|
|
def find_elements_by_css(self, selector):
|
|
"""Find all elements matching a css selector."""
|
|
return self._find_elements('css selector', selector)
|
|
|
|
def find_element_by_link_text(self, text):
|
|
"""Find the first link with the given text."""
|
|
return self._find_element('link text', text)
|
|
|
|
def find_elements_by_link_text(self, text):
|
|
"""Find all links with the given text."""
|
|
return self._find_elements('link text', text)
|
|
|
|
def find_element_by_partial_link_text(self, text):
|
|
"""Find the first link containing the given text."""
|
|
return self._find_element('partial link text', text)
|
|
|
|
def find_elements_by_partial_link_text(self, text):
|
|
"""Find all links containing the given text."""
|
|
return self._find_elements('partial link text', text)
|
|
|
|
def find_element_by_xpath(self, xpath):
|
|
"""Find the first element matching the xpath."""
|
|
return self._find_element('xpath', xpath)
|
|
|
|
def find_elements_by_xpath(self, xpath):
|
|
"""Find all elements matching the xpath."""
|
|
return self._find_elements('xpath', xpath)
|
|
|
|
def _find_element(self, strategy, value):
|
|
return self.execute('POST',
|
|
'/element',
|
|
'findElement',
|
|
self._get_locator(strategy, value))
|
|
|
|
def _find_elements(self, strategy, value):
|
|
return self.execute('POST',
|
|
'/elements',
|
|
'findElements',
|
|
self._get_locator(strategy, value))
|
|
|
|
def _get_locator(self, strategy, value):
|
|
if self.mode == 'strict':
|
|
return {'strategy': strategy, 'value': value}
|
|
elif self.mode == 'compatibility':
|
|
return {'using': strategy, 'value': value}
|