Beispiel #1
0
    def take_screenshot():
        screen_name = Screenshooter.get_screen_file_name()
        save_screen_path = os.path.join(Screenshooter.__session_dir, screen_name)

        Logger.info("Screenshot capture to file " + screen_name)
        Browser.get_browser().get_driver().save_screenshot(save_screen_path)
        result_image = Image.open(save_screen_path)
        Logger.info(VisualRecord(screen_name, result_image))
Beispiel #2
0
def create_browser(request):
    with allure.step("Creating a browser session"):
        browser = request.config.getoption('--browser')
        selenoid = request.config.getoption('--selenoid')
        lang = request.config.getoption('--lang')
        Browser.get_browser().set_up_driver(browser_key=browser, selenoid=selenoid, lang=lang)

    yield

    with allure.step("Close sessions of all browsers"):
        for browser_key in list(Browser.get_browser().get_driver_names()):
            Browser.get_browser().quit(browser_key=browser_key)
Beispiel #3
0
 def get_displayed_elements(condition, locator):
     element_size = len(Browser.get_browser().get_driver().find_elements(condition, locator))
     result_elements = []
     try:
         for ele_number in range(1, element_size + 1):
             element_locator = "({locator})[{number}]".format(locator=locator, number=ele_number)
             Logger.info("Search for an item with a locator " + element_locator)
             element = WebDriverWait(Browser.get_browser().get_driver(), Waits.EXPLICITLY_WAIT_SEC).until(
                 ec.visibility_of_element_located((condition, element_locator)))
             result_elements.append(element)
     except TimeoutException:
         error_msg = "item with locator was not found"
         Logger.error(error_msg)
         raise TimeoutException(error_msg)
     return result_elements
Beispiel #4
0
def create_browser(request):
    with allure.step("Creating a browser session"):
        browser = request.config.getoption('--browser')
        selenoid = request.config.getoption('--selenoid')
        lang = request.config.getoption('--lang')
        Browser.get_browser().set_up_driver(browser_key=browser,
                                            selenoid=selenoid,
                                            lang=lang)
        cloudinary.config(cloud_name=CloudinaryConfig.CLOUD_NAME,
                          api_key=CloudinaryConfig.API_KEY,
                          api_secret=CloudinaryConfig.API_SECRET)
    yield

    with allure.step("Close sessions of all browsers"):
        for browser_key in list(Browser.get_browser().get_driver_names()):
            Browser.get_browser().quit(browser_key=browser_key)
Beispiel #5
0
 def wait_for_check_by_condition(self, method_to_check, message,
                                 wait_time_sec=Waits.EXPLICITLY_WAIT_SEC, use_default_msg=True):
     try:
         element = WebDriverWait(Browser.get_browser().get_driver(), wait_time_sec).until(method=method_to_check)
     except TimeoutException:
         result_message = ("item '" + self.get_name() + "' with locator " + self.get_locator() + message
                           if use_default_msg else message)
         Logger.warning(result_message)
         raise TimeoutException(result_message)
     return element
Beispiel #6
0
    def wait_for(self, condition, *args, **kwargs):
        def func(driver):
            try:
                value = condition(*args, **kwargs)
                return value
            except StaleElementReferenceException:
                return False

        return WebDriverWait(Browser.get_browser().get_driver(), Waits.EXPLICITLY_WAIT_SEC,
                             ignored_exceptions=[StaleElementReferenceException]).until(func)
Beispiel #7
0
 def wait_for_is_displayed(self):
     Browser.get_browser().wait_for_true(self.is_displayed)
Beispiel #8
0
 def double_click(self):
     self.wait_for_is_visible()
     Logger.info("double_click: Double click on an item '" + self.get_name() + "'")
     ActionChains(Browser.get_browser().get_driver()).double_click(self.find_element()).perform()
Beispiel #9
0
 def scroll_by_script(self):
     self.wait_for_is_visible()
     Logger.info("Scroll to item '" + self.get_name() + "'")
     Browser.get_browser().execute_script(scripts_js.SCROLL_INTO_VIEW, self.find_element())
Beispiel #10
0
 def get_text_content(self):
     self.wait_for_is_visible()
     return Browser.get_browser().get_driver().\
         execute_script("return arguments[0].textContent;", self.find_element())
Beispiel #11
0
 def wait_for_page_closed(self):
     self.wait_page_to_load()
     return Browser.get_browser().is_wait_successful(
         Label(self.search_condition, self.locator,
               self.page_name).wait_for_is_absent)
Beispiel #12
0
 def get_elements_count(self):
     elements_count = len(Browser.get_browser().get_driver().find_elements(self.__search_condition, self.__locator))
     return elements_count
Beispiel #13
0
 def key_up(self, key):
     actions = ActionChains(Browser.get_browser().get_driver())
     actions.key_up(value=key, element=self.find_element())
     actions.perform()
Beispiel #14
0
 def actions_click_with_key(self, key):
     actions = ActionChains(Browser.get_browser().get_driver())
     actions.key_down(value=key).click(self.find_element()).key_up(value=key).perform()
Beispiel #15
0
 def actions_click(self):
     actions = ActionChains(Browser.get_browser().get_driver())
     actions.click(on_element=self.find_element())
     actions.perform()
Beispiel #16
0
 def js_click(self):
     element = self.wait_for_clickable()
     Browser.get_browser().get_driver().execute_script("arguments[0].click();", element)
Beispiel #17
0
 def refresh_page(self):
     Logger.info("Page Refresh " + self.page_name)
     Browser.get_browser().refresh_page()
Beispiel #18
0
 def wait_page_to_load(self):
     Logger.info("Waiting for page to load " + self.page_name + " using js")
     Browser.get_browser().wait_for_page_to_load()
Beispiel #19
0
 def get_elements(self):
     return Browser.get_browser().get_driver().find_elements(self.__search_condition, self.__locator)
Beispiel #20
0
 def send_keys_to_element(self, keys):
     actions = ActionChains(Browser.get_browser().get_driver())
     actions.send_keys_to_element(self.find_element(), keys)
     actions.perform()
Beispiel #21
0
 def actions_send_keys(self, keys):
     actions = ActionChains(Browser.get_browser().get_driver())
     actions.move_to_element(self.find_element()).send_keys(keys)
     actions.perform()
Beispiel #22
0
 def is_opened(self):
     Logger.info("Check if the page is open " + self.page_name)
     self.wait_page_to_load()
     return Browser.get_browser().is_wait_successful(
         Label(self.search_condition, self.locator,
               self.page_name).wait_for_is_visible)