mirror of
https://github.com/fergalmoran/dss.api.git
synced 2025-12-26 11:17:59 +00:00
25 lines
962 B
Python
Executable File
25 lines
962 B
Python
Executable File
from selenium.common.exceptions import NoSuchElementException
|
|
from selenium.webdriver.support.wait import WebDriverWait
|
|
from dss import settings
|
|
|
|
try:
|
|
web_driver_module = settings.SELENIUM_WEBDRIVER
|
|
except AttributeError:
|
|
from selenium.webdriver.firefox import webdriver as web_driver_module
|
|
|
|
class CustomWebDriver(web_driver_module.WebDriver):
|
|
"""Our own WebDriver with some helpers added"""
|
|
|
|
def find_css(self, css_selector):
|
|
"""Shortcut to find elements by CSS. Returns either a list or singleton"""
|
|
elems = self.find_elements_by_css_selector(css_selector)
|
|
found = len(elems)
|
|
if found == 1:
|
|
return elems[0]
|
|
elif not elems:
|
|
raise NoSuchElementException(css_selector)
|
|
return elems
|
|
|
|
def wait_for_css(self, css_selector, timeout=7):
|
|
""" Shortcut for WebDriverWait"""
|
|
return WebDriverWait(self, timeout).until(lambda driver : driver.find_css(css_selector)) |