コード例 #1
0
    def get_project_list(self):
        self.homepage_po = RedmineHomePage(self.driver)
        self.homepage_po.click_on_link('Projects')
        p_list = []
        for p in self.tbl_projects_list:
            p_list.append(p.text)

        return p_list
コード例 #2
0
 def __init__(self, driver, user=None):
     super(RedmineProjectsPage, self).__init__(driver=driver)
     self.is_mobile_emulation = self.check_is_mobile_emulation()
     self.is_android = self.is_android_test()
     self.is_ios = self.is_ios_test()
     if self.is_android:
         self.mobile_po = AndroidBasePage(driver)
     elif self.is_ios:
         self.mobile_po = IosBasePage(driver)
     if user:
         login_po = RedmineLoginPage(self.driver)
         home_po = login_po.login(user)
         home_po.click_on_link('projects')
         self.wait_for_element_to_be_present(
             element_locator=self.btn_new_project_loc, waiting_time=5)
     self.homepage_po = RedmineHomePage(self.driver)
     self.wait_for_element_to_be_present(self.homepage_po.menu_projects_loc)
コード例 #3
0
 def find_project(self, project_name):
     self.homepage_po = RedmineHomePage(self.driver)
     if self.is_mobile_emulation:
         self.homepage_po.click_on_mobile_menu()
     self.homepage_po.click_on_link('Projects')
     if self.is_ios or self.is_android:
         i = 0
         while i < 12:
             for project in self.tbl_projects_list:
                 if project.text == project_name and project.is_displayed():
                     return project
             self.mobile_po.scroll_down()
         return None
     else:
         for project in self.tbl_projects_list:
             if project.text == project_name:
                 return project
         return None
コード例 #4
0
 def login(self, username: str = 'admin') -> RedmineHomePage:
     user_name_cred, password_cred = pytest.cfg.get(
         'pytest.environment.redmine').get(username).split("/")
     self.fill_username(user_name_cred)
     self.fill_password(password_cred)
     self.btn_login.submit()
     self.wait_for_invisibility_of_element(
         element_locator=self.txt_user_name_loc, waiting_time=5)
     return RedmineHomePage(self.driver)
コード例 #5
0
 def __init__(self, driver, uri=None):
     super(RedmineLoginPage, self).__init__(driver)
     self.is_mobile = self.check_is_mobile_emulation()
     self.is_android = self.is_android_test()
     self.is_ios = self.is_ios_test()
     if uri:
         self.url = uri
     else:
         self.url = self._get_login_url()
     self._goto_login_page()
     self.homepage_po = RedmineHomePage(self.driver)
     self.wait_for_element_to_be_present(self.txt_user_name_loc, 10)
     assert_that(self.txt_user_name_loc).is_true().described_as(
         "System login page cannot be reached.")
コード例 #6
0
class RedmineProjectsPage(WebuiBasePage, RedmineProjectsPageElements):
    def __init__(self, driver, user=None):
        super(RedmineProjectsPage, self).__init__(driver=driver)
        self.is_mobile_emulation = self.check_is_mobile_emulation()
        self.is_android = self.is_android_test()
        self.is_ios = self.is_ios_test()
        if self.is_android:
            self.mobile_po = AndroidBasePage(driver)
        elif self.is_ios:
            self.mobile_po = IosBasePage(driver)
        if user:
            login_po = RedmineLoginPage(self.driver)
            home_po = login_po.login(user)
            home_po.click_on_link('projects')
            self.wait_for_element_to_be_present(
                element_locator=self.btn_new_project_loc, waiting_time=5)
        self.homepage_po = RedmineHomePage(self.driver)
        self.wait_for_element_to_be_present(self.homepage_po.menu_projects_loc)

    def create_project(self, td):
        self.btn_new_project.click()
        self.wait_for_element_to_be_present(
            element_locator=self.txt_project_name_loc, waiting_time=5)
        self.txt_project_name = td.get("project_name")

        if td.get("description", None):
            self.txt_project_description = td["description"]

        if td.get("homepage", None):
            self.txt_homepage = td["homepage"]

        if td.get("public", None):
            self.click_check_box(web_element=self.chk_public, uncheck=False)

        if td.get("subproject_of", None):
            self.sel_subproject_of = td["subproject_of"]

        if td.get("inherit_members", None):
            if self.is_android:
                if self.driver.is_keyboard_shown():
                    try:
                        self.driver.hide_keyboard()
                    except WebDriverException as e:
                        print(4 * "<" + "[WARNING]" + 4 * ">" +
                              "Not able to hide keyboard. (Android device)" +
                              "\nERROR: " + format(e) + "\n")

            self.click_check_box(web_element=self.chk_inherit_members,
                                 uncheck=False)

        if td.get("modules", None):
            for module in td["modules"]:
                if td["modules"][module]:
                    self.click_check_box_by_name(
                        web_elements=self.chk_modules_list,
                        checkbox_name=module)

        if self.is_android:
            self.scroll_to(web_element=self.btn_create)

        self.btn_create.click()

    def get_ui_message(self):
        self.wait_for_element_to_be_present(
            element_locator=self.lbl_message_loc, waiting_time=5)
        return self.lbl_message.text

    def save_project(self):
        self.btn_save.click()

    def get_project_list(self):
        self.homepage_po = RedmineHomePage(self.driver)
        self.homepage_po.click_on_link('Projects')
        p_list = []
        for p in self.tbl_projects_list:
            p_list.append(p.text)

        return p_list

    def find_project(self, project_name):
        self.homepage_po = RedmineHomePage(self.driver)
        if self.is_mobile_emulation:
            self.homepage_po.click_on_mobile_menu()
        self.homepage_po.click_on_link('Projects')
        if self.is_ios or self.is_android:
            i = 0
            while i < 12:
                for project in self.tbl_projects_list:
                    if project.text == project_name and project.is_displayed():
                        return project
                self.mobile_po.scroll_down()
            return None
        else:
            for project in self.tbl_projects_list:
                if project.text == project_name:
                    return project
            return None
コード例 #7
0
 def __init__(self, driver):
     super(RedmineAdministrationPage, self).__init__(driver=driver)
     self.homepage_po = RedmineHomePage(self.driver)
コード例 #8
0
 def __init__(self, driver):
     super(RedmineAdminProjectsPage, self).__init__(driver=driver)
     self.homepage_po = RedmineHomePage(self.driver)