def find_element(self, locator):
try:
element = WebDriverWait(self.driver, 30, 0.5).until(
lambda x: x.find_element(*locator)
)
return element
except NoSuchElementException as e:
print(f'Error: {e}')
def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None
end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
raise TimeoutException(message, screen, stacktrace)