Skip to content

Commit

Permalink
[qacode] fix for issue #103 (#105)
Browse files Browse the repository at this point in the history
  • Loading branch information
netzulo committed Jan 21, 2018
1 parent 9f58bd0 commit 010bdfd
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 6 deletions.
11 changes: 8 additions & 3 deletions qacode/core/bots/modules/nav_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,18 +86,23 @@ def find_element(self, selector, locator=By.CSS_SELECTOR):
raise CoreException(message=msg)
try:
return self.driver.find_element(locator, selector)
except NoSuchElementException:
raise CoreException(message=msg_err)
except NoSuchElementException as err:
raise CoreException(err, message=msg_err)

def find_elements(self, selector, locator=By.CSS_SELECTOR):
"""
Just divided execution ways for search web elements throught selenium
"""
msg = 'Locator not selected at find_element, selector={}'.format(
selector)
msg_err = 'Error at find_elements: selector={}'.format(
selector)
if locator is None:
raise CoreException(message=msg)
return self.driver.find_elements(locator, selector)
try:
return self.driver.find_elements(locator, selector)
except NoSuchElementException as err:
raise CoreException(err, message=msg_err)

def find_element_wait(self, selector,
locator=By.CSS_SELECTOR,
Expand Down
9 changes: 7 additions & 2 deletions qacode/core/exceptions/core_exception.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"""Main Exceptions for qacode library"""


from selenium.common.exceptions import NoSuchElementException
from qacode.core.loggers.logger_manager import LoggerManager


Expand All @@ -15,9 +16,13 @@ def __init__(self,
log=None):
"""Raise an exception from any part of qacode package"""
super(CoreException, self).__init__(err, message)
msg = "FAILED qacode.core: message={}"
msg = "FAILED {}: message={}".format(
type(self),
message)
if log is None:
self.log = LoggerManager().logger
else:
self.log = log
self.log.error(str(msg.format(message)))
if err is not None and isinstance(err, NoSuchElementException):
self.log.warning(err.args)
self.log.error(msg)
9 changes: 8 additions & 1 deletion qacode/core/webs/controls/control_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@


from selenium.webdriver.common.by import By
from qacode.core.exceptions.core_exception import CoreException
from qacode.core.exceptions.control_exception import ControlException


Expand Down Expand Up @@ -75,7 +76,13 @@ def load_element(self, selector, locator=By.CSS_SELECTOR):
internal element
"""
self.bot.log.debug("load_element: selector={}".format(selector))
return self.bot.navigation.find_element(selector, locator=locator)
try:
return self.bot.navigation.find_element(
selector, locator=locator)
except CoreException as err:
raise ControlException(
err, message='Element not found at load control_base')


def find_child(self, selector, locator=By.CSS_SELECTOR):
"""
Expand Down

0 comments on commit 010bdfd

Please sign in to comment.