コード例 #1
0
ファイル: base_element.py プロジェクト: lJHl/qa_automation
 def get_text(self):
     Logger.info("get_text: Receiving text element '" + self.get_name() +
                 "'")
     self.wait_for_is_present()
     text = self.find_element().text
     Logger.info("get_text: Received text '" + text + "'")
     return text
コード例 #2
0
ファイル: base_element.py プロジェクト: lJHl/qa_automation
 def send_keys_without_click(self, key):
     Logger.info("send_keys: Change text for an item '" + self.get_name() +
                 " " + self.__class__.__name__ + "'" + "' to text => '" +
                 key + "'")
     self.wait_for_is_visible()
     element = self.wait_for_clickable()
     element.send_keys(key)
コード例 #3
0
 def set_up_driver(self,
                   selenoid,
                   browser_key,
                   lang,
                   capabilities=None,
                   is_incognito=False,
                   enable_performance_logging=False,
                   test_name=None):
     Logger.info('Create driver for browser ' + browser_key)
     if browser_key in self.__web_driver:
         raise ValueError(
             "Browser with key '{}', was created.".format(browser_key))
     self.__web_driver[browser_key] = \
         BrowserFactory.get_browser_driver(browser_key=browser_key,
                                           lang=lang,
                                           capabilities=capabilities,
                                           is_incognito=is_incognito,
                                           enable_performance_logging=enable_performance_logging,
                                           test_name=test_name, selenoid=selenoid)
     self.__web_driver[browser_key].implicitly_wait(
         Waits.IMPLICITLY_WAIT_SEC)
     self.__web_driver[browser_key].set_page_load_timeout(
         Waits.PAGE_LOAD_TIMEOUT_SEC)
     self.__web_driver[browser_key].set_script_timeout(
         Waits.SCRIPT_TIMEOUT_SEC)
     self.__main_window_handle = self.__web_driver[
         browser_key].current_window_handle
     self.select_browser(browser_key)
コード例 #4
0
 def switch_new_window(self, logged_page_name=""):
     Logger.info("Switch to new window %s" % logged_page_name)
     handles = self.get_driver().window_handles
     if len(handles) <= 1:
         raise NoSuchWindowException(
             "There is no window. Count windows is %s" % len(handles))
     self.get_driver().switch_to_window(handles[-1])
コード例 #5
0
ファイル: text_box.py プロジェクト: lJHl/qa_automation
 def get_value(self):
     self.wait_for_is_present()
     value = super(TextBox, self).get_attribute("value")
     Logger.info("Method get_value in item " + self.get_name() + " " +
                 self.get_element_type() + " получил значение: " +
                 str(value))
     return value
コード例 #6
0
ファイル: screenshooter.py プロジェクト: lJHl/qa_automation
    def set_session_screen_dir():
        lock = threading.Lock()
        lock.acquire()
        try:
            if not os.path.exists(Screenshooter.__screen_dir):
                Logger.info("Creating a directory for storing screenshots: " +
                            Screenshooter.__screen_dir)
                os.makedirs(Screenshooter.__screen_dir)

            new_screen_path = os.path.join(
                Screenshooter.__screen_dir,
                "Session_" + DatetimeUtil.get_str_datetime(
                    screenshots.FORMAT_DATETIME_FOR_SCREEN))

            if Screenshooter.__session_dir is None and not os.path.exists(
                    new_screen_path):
                Screenshooter.__session_dir = new_screen_path
            else:
                Screenshooter.__session_dir = new_screen_path + "." + str(
                    datetime.now().microsecond)

            Logger.info("Creating a directory " + new_screen_path)
            os.makedirs(Screenshooter.__session_dir)
        finally:
            lock.release()
コード例 #7
0
 def switch_to_window(self, window_handle=None):
     if window_handle is None:
         window_handle = self.__main_window_handle
     Logger.info("Switch to window %s" % window_handle)
     try:
         self.get_driver().switch_to_window(window_handle)
     except NoSuchWindowException:
         Logger.error("Window with name not found %s" % window_handle)
コード例 #8
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))
コード例 #9
0
    def click(self):
        Logger.info("click: Click on an item '" + self.get_name() + " " + self.__class__.__name__ + "'")

        def func():
            self.find_element().click()
            return True

        self.wait_for(func)
コード例 #10
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
コード例 #11
0
 def refresh_page(self):
     Logger.info("Page Refresh " + self.page_name)
     Browser.get_browser().refresh_page()
コード例 #12
0
 def wait_for_page_opened(self):
     Logger.info("Waiting for page to load " + self.page_name +
                 " and visibility of its identifying element")
     self.wait_page_to_load()
     Label(self.search_condition, self.locator,
           self.page_name).wait_for_is_visible()
コード例 #13
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)
コード例 #14
0
 def send_alert_text(self, text):
     Logger.info(f"Send to alert text {text}")
     self.switch_to_alert().send_keys(text)
コード例 #15
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())
コード例 #16
0
 def get_alert_text(self):
     Logger.info("Return text from alert")
     return self.switch_to_alert().text
コード例 #17
0
 def get_cookie(self, name):
     Logger.info("Get cookie with name: " + name)
     return self.get_driver().get_cookie(name=name)
コード例 #18
0
 def refresh_page(self):
     Logger.info("Reload page")
     self.get_driver().refresh()
コード例 #19
0
 def set_url(self, url):
     Logger.info("Change url page on " + url)
     self.get_driver().get(url)
コード例 #20
0
 def close(self, page_name=""):
     if self.get_driver() is not None:
         Logger.info("CLose page %s " % page_name)
         self.get_driver().close()
コード例 #21
0
 def quit(self, browser_key=BrowserConfig.BROWSER):
     browser_inst = self.__web_driver.get(browser_key)
     if browser_inst is not None:
         Logger.info("Stop driver work")
         browser_inst.quit()
         self.__web_driver.pop(browser_key, None)
コード例 #22
0
 def dismiss_alert(self):
     Logger.info("Close alert")
     self.switch_to_alert().dismiss()
コード例 #23
0
 def get_attribute(self, attr):
     Logger.info("get_attribute: Get attribute " + attr + " for item '" + self.get_name() + "'")
     self.wait_for_is_visible()
     return self.find_element().get_attribute(name=attr)
コード例 #24
0
 def switch_to_alert(self):
     Logger.info("Switch to alert")
     time.sleep(5)
     return self.get_driver().switch_to.alert
コード例 #25
0
 def get_css_value(self, property_name):
     Logger.info("get_attribute: Get attribute CSS" + property_name + " for item '" + self.get_name() + "'")
     self.wait_for_is_visible()
     return self.find_element().value_of_css_property(property_name=property_name)
コード例 #26
0
 def switch_to_default_content(self):
     Logger.info("Switch to main frame")
     self.get_driver().switch_to_default_content()
コード例 #27
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()
コード例 #28
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()
コード例 #29
0
 def get_cookies(self):
     Logger.info("Getting all cookies")
     return self.get_driver().get_cookies()
コード例 #30
0
 def accept_alert(self):
     Logger.info("Accept alert")
     self.switch_to_alert().accept()