diff --git a/JDI/web/selenium/elements/api_interact/get_element_module.py b/JDI/web/selenium/elements/api_interact/get_element_module.py index 89f387f..bfd4ced 100644 --- a/JDI/web/selenium/elements/api_interact/get_element_module.py +++ b/JDI/web/selenium/elements/api_interact/get_element_module.py @@ -14,7 +14,7 @@ def __init__(self, by_locator=None, element=None): self.frame_locator = None def get_element(self): - return self.web_element if self.web_element is not None else self.__get_element_action() + return self.web_element if self.web_element else self.__get_element_action() def get_elements(self): result = self.__search_elements() @@ -38,13 +38,15 @@ def __get_one_or_more_elements(self): return self.web_elements if self.web_elements else self.__search_elements() def __search_elements(self): - search_context = self.get_driver() \ - if WebDriverByUtils.contains_root(self.by_locator) \ - else self.get_search_context(self.element.parent) + if WebDriverByUtils.contains_root(self.by_locator): + search_context = self.get_driver() + else: + search_context = self.get_search_context(self.element.parent) - locator = WebDriverByUtils.trim_root(self.by_locator) \ - if WebDriverByUtils.contains_root(self.by_locator) \ - else self.by_locator + if WebDriverByUtils.contains_root(self.by_locator): + locator = WebDriverByUtils.trim_root(self.by_locator) + else: + locator = self.by_locator if search_context is None: search_context = self.get_driver() @@ -58,36 +60,29 @@ def get_search_context(self, element): driver = self.get_driver() if element is None: return driver - from JDI.web.selenium.elements.composite.web_site import WebSite try: - if isinstance(element, WebSite) or isinstance(element.get_parent(), WebSite): - return driver - except: pass + if element.get_parent() is None and element.avatar.frame_locator is None: + return self.get_driver().switch_to.default_content() + except AttributeError as e: + print(e) + return driver try: - if issubclass(element, WebSite) or issubclass(element.get_parent(), WebSite): - return driver - except: pass - from JDI.web.selenium.elements.base.base_element import BaseElement - from JDI.web.selenium.elements.base.element import Element - if (element is None or type(element) is BaseElement) or \ - (element.get_parent() is None and element.avatar.frame_locator is None): - return self.get_driver().switch_to.default_content() - if type(element) is Element and element.avatar.has_web_element(): - return element.get_web_element + if element.avatar.has_web_element(): + return element.get_web_element + except AttributeError as e: + print(e) locator = element.get_locator() - search_context = self.get_driver().switch_to.default_content() \ - if WebDriverByUtils.contains_root(locator) \ - else self.get_search_context(element.get_parent()) - locator = WebDriverByUtils.trim_root(locator) \ - if WebDriverByUtils.contains_root(locator) \ - else locator - + if WebDriverByUtils.contains_root(locator): + search_context = self.get_driver().switch_to.default_content() + locator = WebDriverByUtils.trim_root(locator) + else: + search_context = self.get_search_context(element.get_parent()) frame = element.avatar.frame_locator - if frame is not None: + if frame: self.switch_to_last_opened_window() res = search_context.find_element(element.avatar.frame_locator[0], element.avatar.frame_locator[1]) driver.switch_to.frame(res) - return search_context.find_element(locator[0], locator[1]) if locator is not None else search_context + return search_context.find_element(locator[0], locator[1]) if locator else search_context def switch_to_last_opened_window(self): self.get_driver().switch_to.window(self.get_driver().window_handles[-1]) @@ -96,7 +91,7 @@ def set_web_element(self, web_element): self.web_element = web_element def has_locator(self): - return self.by_locator is not None + return self.by_locator def has_we_element(self): - return self.web_element is not None + return self.web_element diff --git a/JDI/web/selenium/elements/base/base_element.py b/JDI/web/selenium/elements/base/base_element.py index 83beddc..666d068 100644 --- a/JDI/web/selenium/elements/base/base_element.py +++ b/JDI/web/selenium/elements/base/base_element.py @@ -42,17 +42,5 @@ def set_parent(self, parent): def get_locator(self): return self.avatar.by_locator - def __str__(self): - s = "Name " + self.__class__.__name__ - if "by_locator" in dir(self.avatar): - if self.avatar.by_locator is not None: - s += "; Locator: %s:'%s'" % (self.avatar.by_locator[0], self.avatar.by_locator[1]) - if self.parent is not None: - if "avatar" in dir(self.parent): - if self.parent.avatar.by_locator is not None: - s += "; Parent: %s:'%s'" % (self.parent.avatar.by_locator[0], self.parent.avatar.by_locator[1]) - - return s - def has_locator(self): return self.avatar.has_locator() diff --git a/tests/test_get_driver.py b/tests/test_get_driver.py index b9bd1e2..d10b3bc 100644 --- a/tests/test_get_driver.py +++ b/tests/test_get_driver.py @@ -13,7 +13,7 @@ def test_download_chromedriver(self): assert os.path.exists("chromedriver.exe") is True def test_get_last_release(self): - assert get_driver.get_last_release() == "90.0.4430.24" + assert get_driver.get_last_release() == "91.0.4472.19" def test_get_last_release_for_build(self): assert get_driver.get_last_release(build="90") == "90.0.4430.24"