class WebSettings(JDISettings): logger = JDILogger() domain = JDISettings.get_domain() @staticmethod def get_driver_factory(): return JDISettings.get_driver_factory() @staticmethod def set_driver_factory(driver_factory): JDISettings._driver_factory = driver_factory @staticmethod def use_driver(driver_name): JDISettings._driver_factory = SeleniumDriverFactory() WebSettings.set_driver_factory(JDISettings._driver_factory) return JDISettings._driver_factory.register_driver(driver_name) @staticmethod def quit_browser(): WebSettings.get_driver_factory().get_driver().quit() @staticmethod def get_driver(): return WebSettings.get_driver_factory().get_driver()
def __web_driver_settings(self, driver): if self.browser_size is None: driver.maximize_window() else: driver.set_window_size(self.browser_size) driver.implicitly_wait(JDISettings.get_current_timeout_sec()) return driver
class WebSettings(JDISettings): logger = JDILogger() domain = JDISettings.get_domain() @staticmethod def get_driver_factory(): return JDISettings.get_driver_factory() @staticmethod def set_driver_factory(driver_factory): JDISettings._driver_factory = driver_factory @staticmethod def use_driver(options=None, capabilities=None, executor=None): driver_name = JDISettings.get_setting_by_name("driver") JDISettings._driver_factory = SeleniumDriverFactory() WebSettings.set_driver_factory(JDISettings._driver_factory) return JDISettings._driver_factory.register_driver(driver_name, options, capabilities, executor) @staticmethod def quit_browser(): driver = WebSettings.get_driver_factory().get_driver() driver.quit() try: driver.execute(Command.CLOSE) except Exception: pass @staticmethod def get_driver(): return WebSettings.get_driver_factory().get_driver()
def is_empty(self): try: self.get_driver().implicitly_wait(0) row_count = self.rows.get_count(True) return row_count == 0 finally: self.get_driver().implicitly_wait(JDISettings.get_current_timeout_sec())
def test_focus(self): value = "value" attribute_name = "focusTest" self.text_field.set_attribute(attribute_name, value) self.text_field.focus() driver = JDISettings.get_driver_factory().get_driver() result_value = driver._switch_to.active_element.get_attribute(attribute_name) Assert.assert_equal(value, result_value)
def is_empty(self): try: self.get_driver().implicitly_wait(0) row_count = self.rows.get_count(True) return row_count == 0 finally: self.get_driver().implicitly_wait( JDISettings.get_current_timeout_sec())
def __init__(self, url, title=None, domain=None, url_template=None, url_check_type=None, title_check_type=None): self.url = (JDISettings.get_domain() if domain is None else domain) + url self.title = title self.url_template = url_template if url_check_type is not None: self.check_url_type = url_check_type if title_check_type is not None: self.check_title_type = title_check_type super(WebPage, self).__init__()
def set_attribute(self, attribute_name, value): JDISettings.get_driver_factory()\ .get_driver().execute_script("arguments[0].setAttribute('{0}',arguments[1]);".format(attribute_name), self.get_element(), value)
def is_in_state(self): str_value = self.value[0] if isinstance(self.value, tuple) else self.value if not WebPreconditions.check_url(str_value): WebPreconditions.open_uri(JDISettings.get_domain() + str_value)
def __init__(self): self.current_driver = None self.browser_size = None self.drivers_path = JDISettings.get_driver_path()
def get_driver(): return JDISettings.get_driver_factory().get_driver()
def mouse_over(self): driver = JDISettings.get_driver_factory().get_driver() ActionChains(driver).move_to_element(self.get_web_element()).perform()
def hover_action(self, names): driver = JDISettings.get_driver_factory().get_driver() self._choose_item_action(names, lambda el: ActionChains(driver).move_to_element(el).click_and_hold().perform())
def __init__(self, url, title=None, domain=None): self.url = (JDISettings.get_domain() if domain is None else domain) + url self.title = title super(WebPage, self).__init__()
def back(self): JDISettings.get_driver_factory().get_driver().back()
def get_lines(self): return JDISettings.get_driver_factory() \ .get_driver().execute_script("return arguments[0].value", self.get_element()).split("\n")
def loose_focus(): JDISettings.get_driver_factory().get_driver().find_element(By.CLASS_NAME,"footer-content").click()
def drag_and_drop(self, target): driver = JDISettings.get_driver_factory().get_driver() ActionChains(driver).drag_and_drop(self.get_web_element(), target.get_web_element()).perform()
def focus_action(self): size = self.get_web_element().size driver = JDISettings.get_driver_factory().get_driver() ActionChains(driver).move_to_element_with_offset(self.get_web_element(), size["width"] / 2, size["height"] / 2).perform()
def check_all_unchecked(self): driver = JDISettings.get_driver_factory().get_driver() els = driver.find_elements(By.CSS_SELECTOR, value="#elements-checklist input") for el in els: Assert.assert_true(el.get_attribute("checked") in ["false", None])
def check_url(self): return JDISettings.get_driver_factory().get_driver( ).current_url == self.url
def check_page_opened(num): Assert.assert_true(JDISettings.get_driver_factory().get_driver().current_url.endswith("/page{0}.htm".format(num)))
def contains_title(self): return JDISettings.get_driver_factory().get_driver( ).current_title in self.title
def get_chrome_driver_path(): return JDISettings.get_driver_path() + "/chromedriver.exe"
def forward(self): JDISettings.get_driver_factory().get_driver().forward()
def is_check_action(self): driver = JDISettings.get_driver_factory().get_driver() return False if driver.find_element_by_xpath( "//*[@id='elements-checklist']//*[*[text()='Water']]/input" ).get_attribute("checked") is None else True
def match_title(self): return JDISettings.get_driver_factory().get_driver( ).current_title.search(self.title)
def click_center(self): driver = JDISettings.get_driver_factory().get_driver() ActionChains(driver).click(self.get_web_element()).perform()
def add_cookie(self, cookie): JDISettings.get_driver_factory().get_driver().add_cookie(cookie)
def check_title(self): return JDISettings.get_driver_factory().get_driver( ).title == self.title
def focus_action(self): size = self.get_web_element().size driver = JDISettings.get_driver_factory().get_driver() ActionChains(driver).move_to_element_with_offset( self.get_web_element(), size["width"] / 2, size["height"] / 2 ).perform()
def clear_cache(self): JDISettings.get_driver_factory().get_driver().delete_all_cookies()
def contains_url(self): return JDISettings.get_driver_factory().get_driver( ).current_url in self.url
def loose_focus(): JDISettings.get_driver_factory().get_driver().find_element( By.CLASS_NAME, "footer-content").click()
def match_url(self): return JDISettings.get_driver_factory().get_driver( ).current_url.search(self.url)
def tearDown(self): JDISettings.get_driver_factory().get_driver().refresh()
def refresh(self): JDISettings.get_driver_factory().get_driver().refresh()
def check_page_opened(num): Assert.is_true( JDISettings.get_driver_factory().get_driver().current_url.endswith( "/page{0}.htm".format(num)))