def __init__(self, driver, project_key=None, repo_slug=None, pull_request_key=None):
     BasePage.__init__(self, driver)
     url_manager = UrlManager(project_key=project_key, repo_slug=repo_slug,
                              pull_request_key=pull_request_key)
     self.page_url = url_manager.pull_request_overview()
     self.diff_url = url_manager.pull_request_diff()
     self.commits_url = url_manager.pull_request_commits()
 def __init__(self, driver, issue_key=None, issue_id=None):
     BasePage.__init__(self, driver)
     url_manager_modal = UrlManager(issue_key=issue_key)
     url_manager_edit_page = UrlManager(issue_id=issue_id)
     self.page_url = url_manager_modal.issue_url()
     self.page_url_edit_issue = url_manager_edit_page.edit_issue_url()
     self.page_url_edit_comment = url_manager_edit_page.edit_comments_url()
Example #3
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_issues']:
        issue_key = datasets['custom_issue_key']

    # To run action as specific user uncomment code bellow.
    # NOTE: If app_specific_action is running as specific user, make sure that app_specific_action is running
    # just before test_2_selenium_z_log_out action
    #
    # @print_timing("selenium_app_specific_user_login")
    # def measure():
    #     def app_specific_user_login(username='******', password='******'):
    #         login_page = Login(webdriver)
    #         login_page.delete_all_cookies()
    #         login_page.go_to()
    #         login_page.set_credentials(username=username, password=password)
    #         if login_page.is_first_login():
    #             login_page.first_login_setup()
    #         if login_page.is_first_login_second_page():
    #             login_page.first_login_second_page_setup()
    #         login_page.wait_for_page_loaded()
    #     app_specific_user_login(username='******', password='******')
    # measure()

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_issue")
        def sub_measure():
            page.go_to_url(f"{JIRA_SETTINGS.server_url}/browse/{issue_key}")
            page.wait_until_visible((By.ID, "summary-val"))  # Wait for summary field visible
            page.wait_until_visible((By.CLASS_NAME, "ijs_uap_status"))  # Wait for you app-specific UI element by ID selector
        sub_measure()
    measure()
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_pages']:
        app_specific_page = datasets['custom_pages']
        app_specific_page_id = app_specific_page[0][0]

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_page")
        def sub_measure():
            page.go_to_url(
                f"{CONFLUENCE_SETTINGS.server_url}/pages/viewpage.action?pageId={app_specific_page_id}"
            )
            page.wait_until_visible(
                (By.ID, "title-text"))  # Wait for title field visible
            page.wait_until_visible(
                (By.ID, "github-issue-macro"
                 ))  # Wait for you app-specific UI element by ID selector
            page.wait_until_visible(
                (By.ID, "github-file-macro"
                 ))  # Wait for you app-specific UI element by ID selector
            page.wait_until_visible(
                (By.CLASS_NAME, "markdown-body"
                 ))  # Wait for you app-specific UI element by ID selector

        sub_measure()

    measure()
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_pages']:
        app_specific_page_id = datasets['custom_page_id']

    # To run action as specific user uncomment code bellow.
    # NOTE: If app_specific_action is running as specific user, make sure that app_specific_action is running
    # just before test_2_selenium_z_log_out
    # @print_timing("selenium_app_specific_user_login")
    # def measure():
    #     def app_specific_user_login(username='******', password='******'):
    #         login_page = Login(webdriver)
    #         login_page.delete_all_cookies()
    #         login_page.go_to()
    #         login_page.wait_for_page_loaded()
    #         login_page.set_credentials(username=username, password=password)
    #         login_page.click_login_button()
    #         if login_page.is_first_login():
    #             login_page.first_user_setup()
    #         all_updates_page = AllUpdates(webdriver)
    #         all_updates_page.wait_for_page_loaded()
    #     app_specific_user_login(username='******', password='******')
    # measure()

    @print_timing("selenium_app_custom_action")
    def measure():

        @print_timing("selenium_app_custom_action:view_page")
        def sub_measure():
            page.go_to_url(f"{CONFLUENCE_SETTINGS.server_url}/pages/viewpage.action?pageId={app_specific_page_id}")
            page.wait_until_visible((By.ID, "title-text"))  # Wait for title field visible
            page.wait_until_visible((By.ID, "ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT"))  # Wait for you app-specific UI element by ID selector
        sub_measure()
    measure()
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    rnd_repo = random.choice(datasets["repos"])

    project_key = rnd_repo[1]
    repo_slug = rnd_repo[0]

    # To run action as specific user uncomment code bellow.
    # NOTE: If app_specific_action is running as specific user, make sure that app_specific_action is running
    # just before test_2_selenium_logout action

    # @print_timing("selenium_app_specific_user_login")
    # def measure():
    #     def app_specific_user_login(username='******', password='******'):
    #         login_page = LoginPage(webdriver)
    #         login_page.delete_all_cookies()
    #         login_page.go_to()
    #         login_page.set_credentials(username=username, password=password)
    #         login_page.submit_login()
    #         get_started_page = GetStarted(webdriver)
    #         get_started_page.wait_for_page_loaded()
    #     app_specific_user_login(username='******', password='******')
    # measure()

    @print_timing("selenium_app_custom_action")
    def measure():

        @print_timing("selenium_app_custom_action:view_repo_page")
        def sub_measure():
            page.go_to_url(f"{BITBUCKET_SETTINGS.server_url}/projects/{project_key}/repos/{repo_slug}/browse")
            page.wait_until_visible((By.CSS_SELECTOR, '.aui-navgroup-vertical>.aui-navgroup-inner')) # Wait for repo navigation panel is visible
            page.wait_until_visible((By.ID, 'ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT'))  # Wait for you app-specific UI element by ID selector
        sub_measure()
    measure()
Example #7
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    rnd_repo = random.choice(datasets["repos"])

    project_key = rnd_repo[1]
    repo_slug = rnd_repo[0]

    page_url = None

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_repo_settings")
        def sub_measure1():
            page.go_to_url(
                f"{BITBUCKET_SETTINGS.server_url}/plugins/servlet/pages-settings/{project_key}/{repo_slug}"
            )
            # Wait for list of branches to load.
            page.wait_until_visible((By.CLASS_NAME, 'default-branch-lozenge'))

        sub_measure1()

        @print_timing("selenium_app_custom_action:enable_pages_for_branch")
        def sub_measure2():
            # Enable serving pages from a branch.
            branch_container = page.get_element(
                (By.XPATH, '//tr[@class="pages-config disabled"]'))
            enable_button = branch_container.find_element(
                By.XPATH, '//button[@title="Enable pages for this branch"]')
            enable_button.click()

            # Wait for the pages link to show up.
            href = branch_container.find_element(
                By.XPATH, '//td[@class="pages-ref-link"]/a')
            nonlocal page_url
            page_url = href.get_attribute('href')
            WebDriverWait(webdriver, 10).until(EC.visibility_of(href))

        sub_measure2()

        @print_timing("selenium_app_custom_action:serve_page")
        def sub_measure3():
            nonlocal page_url
            page.go_to_url(page_url)
            # No index.html in the testing data, expect 404 response.
            page.wait_until_visible(
                (By.XPATH, '//div[@class="error-image _404"]'))

        sub_measure3()

    measure()
Example #8
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_issues']:
        issue_key = datasets['custom_issue_key']

    @print_timing("selenium_app_custom_action")
    def measure():

        @print_timing("selenium_app_custom_action:view_issue")
        def sub_measure():
            page.go_to_url(f"{JIRA_SETTINGS.server_url}/browse/{issue_key}")
            page.wait_until_visible((By.ID, "summary-val"))  # Wait for summary field visible
            page.wait_until_visible((By.ID, "issue-list-panel-11100"))  # Wait for you app-specific UI element by ID selector
        sub_measure()
    measure()
Example #9
0
def app_specific_action_showMyApps(webdriver, datasets):
    page = BasePage(webdriver)

    @print_timing("selenium_app_custom_action_mySettings")
    def measure():
        #@print_timing("selenium_app_custom_action:MyPluginManagerForJira showMyApps")
        def sub_measure():
            page.go_to_url(
                f"{JIRA_SETTINGS.server_url}/plugins/servlet/myconfiguration/adminpluginmanager"
            )
            #page.wait_until_visible((By.ID, "myJobStatusProgressbar"))  # Wait for UI Element visible

        sub_measure()

    measure()
Example #10
0
def app_specific_action_csi_view_page_list_macro(webdriver, datasets):

    page = BasePage(webdriver)

    @print_timing("selenium_app_custom_action:csi_view_page_list_macro")
    def measure():
        page.go_to_url(
            f"{CONFLUENCE_SETTINGS.server_url}/display/CSIO/List+Macro+View")
        page.wait_until_visible(
            (By.ID, "title-text"))  # Wait for title field visible
        page.wait_until_clickable((
            By.XPATH,
            "//div[@class='aui-message aui-message-error']/p[3]/button[@class='csi-error-message-missing-sharepoint-authentication-login aui-button' and 3]"
        ))  # Wait for you app-specific UI element by ID selector

    measure()
Example #11
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_issues']:
        issue_key = datasets['custom_issue_key']

    @print_timing("selenium_agent_app_custom_action")
    def measure():

        @print_timing("selenium_agent_app_custom_action:view_request")
        def sub_measure():
            page.go_to_url(f"{JSM_SETTINGS.server_url}/browse/{issue_key}")
            # Wait for summary field visible
            page.wait_until_visible((By.ID, "summary-val"))
            # Wait for you app-specific UI element by ID selector
            page.wait_until_visible((By.ID, "ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT"))
        sub_measure()
    measure()
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_issues']:
        custom_request_key = datasets['custom_issue_key']
        custom_service_desk_id = datasets['custom_service_desk_id']

    @print_timing("selenium_customer_app_custom_action")
    def measure():

        @print_timing("selenium_customer_app_custom_action:view_request")
        def sub_measure():
            page.go_to_url(f"{JSM_SETTINGS.server_url}/servicedesk/customer/portal/"
                           f"{custom_service_desk_id}/{custom_request_key}")
            # Wait for options element visible
            page.wait_until_visible((By.CLASS_NAME, 'cv-request-options'))
            # Wait for you app-specific UI element by ID selector
            page.wait_until_visible((By.ID, "ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT"))
        sub_measure()
    measure()
Example #13
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_report")
        def sub_measure():
            page.go_to_url(f"{BITBUCKET_SETTINGS.server_url}/plugin/report")
            page.wait_until_visible((By.ID, 'report_app_element_id'))

        sub_measure()

        @print_timing("selenium_app_custom_action:view_dashboard")
        def sub_measure():
            page.go_to_url(f"{BITBUCKET_SETTINGS.server_url}/plugin/dashboard")
            page.wait_until_visible((By.ID, 'dashboard_app_element_id'))

        sub_measure()

    measure()
Example #14
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_pages']:
        app_specific_page_id = datasets['custom_page_id']

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_page")
        def sub_measure():
            page.go_to_url(
                f"{CONFLUENCE_SETTINGS.server_url}/pages/viewpage.action?pageId={app_specific_page_id}"
            )
            page.wait_until_visible(
                (By.ID, "title-text"))  # Wait for title field visible
            page.wait_until_visible(
                (By.CSS_SELECTOR, "#main-content [data-macro-name='miro']"))

        sub_measure()

    measure()
Example #15
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_snippets_page")
        def sub_measure():
            page.go_to_url(f"{BITBUCKET_SETTINGS.server_url}/snippets/browse")
            page.wait_until_visible(
                (By.CLASS_NAME,
                 'list-snippets'))  # Wait for repo navigation panel is visible
            page.go_to_url(
                f"{BITBUCKET_SETTINGS.server_url}/snippets/02ced55ffa824d42b9404afb00aa5a38"
            )
            page.wait_until_visible(
                (By.CLASS_NAME, 'snippet-file-header'
                 ))  # Wait for repo navigation panel is visible

        sub_measure()

    measure()
Example #16
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_issues']:
        custom_request_key = datasets['custom_issue_key']
        custom_service_desk_id = datasets['custom_service_desk_id']

    @print_timing("selenium_customer_app_custom_action")
    def measure():
        @print_timing("selenium_customer_app_custom_action:view_request")
        def sub_measure():
            page.go_to_url(
                f"{JSM_SETTINGS.server_url}/servicedesk/customer/portal/"
                f"{custom_service_desk_id}/{custom_request_key}")
            # Wait for summary field visible
            page.wait_until_visible((By.ID, "summary-val"))
            # Wait for you app-specific UI element by ID selector
            page.wait_until_visible((By.ID, "sendCannedNotifBtn"))

        sub_measure()

    measure()
Example #17
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_pages']:
        app_specific_page_id = datasets['custom_page_id']

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_page")
        def sub_measure():
            page.go_to_url(
                f"{CONFLUENCE_SETTINGS.server_url}/pages/viewpage.action?pageId={app_specific_page_id}"
            )
            page.wait_until_visible(
                (By.ID, "title-text"))  # Wait for title field visible
            page.wait_until_visible(
                (By.ID, "ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT"
                 ))  # Wait for you app-specific UI element by ID selector

        sub_measure()

    measure()
def custom_action(webdriver, datasets):
    page = BasePage(webdriver)

    @print_timing
    def measure(webdriver, interaction):
        @print_timing
        def measure(webdriver, interaction):
            page.go_to_url(f"{JIRA_SETTINGS.server_url}/plugin/report")
            page.wait_until_visible((By.ID, 'report_app_element_id'),
                                    interaction)

        measure(webdriver, 'selenium_app_custom_action:view_report')

        @print_timing
        def measure(webdriver, interaction):
            page.go_to_url(f"{JIRA_SETTINGS.server_url}/plugin/dashboard")
            page.wait_until_visible((By.ID, 'dashboard_app_element_id'),
                                    interaction)

        measure(webdriver, 'selenium_app_custom_action:view_dashboard')

    measure(webdriver, 'selenium_app_custom_action')
def app_specific_action_dashboard(webdriver, datasets):
    page = BasePage(webdriver)

    report_url = "/secure/Dashboard.jspa?selectPageId=10100"
    iframe_id = "dashboard-item-iframe"

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_report")
        def sub_measure():
            page.go_to_url(f"{JIRA_SETTINGS.server_url}{report_url}")
            page.wait_until_available_to_switch(
                (By.ID, iframe_id))  # switch to app iframe
            page.wait_until_visible(
                (By.CLASS_NAME, "progress-bar-wrapper"
                 ))  # loading started and spinner is visible
            page.wait_until_invisible(
                (By.CLASS_NAME, "progress-bar-wrapper"
                 ))  # loading finished and spinner is not visible

        sub_measure()

    measure()
def app_specific_action_sr(webdriver, datasets):
    page = BasePage(webdriver)

    report_url = "/plugins/servlet/simple-reports-app/reports"
    iframe_id = "simple-reports-iframe"

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_report")
        def sub_measure():
            page.go_to_url(f"{JIRA_SETTINGS.server_url}{report_url}")
            page.wait_until_available_to_switch(
                (By.ID, iframe_id))  # switch to app iframe
            page.wait_until_visible(
                (By.CLASS_NAME, "progress-bar-wrapper"
                 ))  # loading started and spinner is visible
            page.wait_until_invisible(
                (By.CLASS_NAME, "progress-bar-wrapper"
                 ))  # loading finished and spinner is not visible

        sub_measure()

    measure()
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    repo = datasets['repos']
    repo_slug = repo[0]
    project_key = repo[1]

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_repo_page")
        def sub_measure():
            page.go_to_url(
                f"{BITBUCKET_SETTINGS.server_url}/projects/{project_key}/repos/{repo_slug}/browse"
            )
            page.wait_until_visible(
                (By.CSS_SELECTOR, '.aui-navgroup-vertical>.aui-navgroup-inner'
                 ))  # Wait for repo navigation panel is visible
            page.wait_until_visible(
                (By.ID, 'ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT'
                 ))  # Wait for you app-specific UI element by ID selector

        sub_measure()

    measure()
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_pages']:
        app_specific_page = datasets['custom_pages']
        app_specific_page_id = random.choice(app_specific_page)[0]

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_page")
        def sub_measure():
            page.go_to_url(
                f"{CONFLUENCE_SETTINGS.server_url}/pages/viewpage.action?pageId={app_specific_page_id}"
            )
            page.wait_until_visible(
                (By.ID, "title-text"))  # Wait for title field visible
            page.wait_until_visible((
                By.CSS_SELECTOR,
                "img.confluence-embedded-image.confluence-thumbnail.conf-macro"
            ))  # Wait for you app-specific UI element by ID selector

        sub_measure()

    measure()
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_issues']:
        custom_request_key = datasets['custom_issue_key']
        custom_service_desk_id = datasets['custom_service_desk_id']

    # To run action as specific user uncomment code bellow.
    # NOTE: If app_specific_action is running as specific user, make sure that app_specific_action is running
    # just before test_2_selenium_z_log_out action

    # @print_timing("selenium_app_specific_user_login")
    # def measure():
    #     def app_specific_user_login(username='******', password='******'):
    #         login_page = Login(webdriver)
    #         login_page.delete_all_cookies()
    #         login_page.go_to()
    #         login_page.set_credentials(username=username, password=password)
    #         login_page.wait_for_page_loaded()
    #     app_specific_user_login(username='******', password='******')
    # measure()

    @print_timing("selenium_customer_app_custom_action")
    def measure():
        @print_timing("selenium_customer_app_custom_action:view_request")
        def sub_measure():
            page.go_to_url(
                f"{JSM_SETTINGS.server_url}/servicedesk/customer/portal/"
                f"{custom_service_desk_id}/{custom_request_key}")
            # Wait for options element visible
            page.wait_until_visible((By.CLASS_NAME, 'cv-request-options'))
            # Wait for you app-specific UI element by ID selector
            page.wait_until_visible(
                (By.ID, "ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT"))

        sub_measure()

    measure()
Example #24
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    rnd_plan = random.choice(datasets["build_plans"])

    build_plan_id = rnd_plan[1]

    # To run action as specific user uncomment code bellow.
    # NOTE: If app_specific_action is running as specific user, make sure that app_specific_action is running
    # just before test_2_selenium_z_log_out action
    #
    # @print_timing("selenium_app_specific_user_login")
    # def measure():
    #     def app_specific_user_login(username='******', password='******'):
    #         login_page = Login(webdriver)
    #         login_page.delete_all_cookies()
    #         login_page.go_to()
    #         login_page.set_credentials(username=username, password=password)
    #         login_page.click_login_button()
    #     app_specific_user_login(username='******', password='******')
    # measure()

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_plan_summary_page")
        def sub_measure():
            page.go_to_url(
                f"{BAMBOO_SETTINGS.server_url}/browse/{build_plan_id}")
            page.wait_until_visible(
                (By.ID, "buildResultsTable"))  # Wait for summary field visible
            # Wait for you app-specific UI element by ID selector
            page.wait_until_visible(
                (By.ID, "ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT"))

        sub_measure()

    measure()
Example #25
0
 def __init__(self, driver, page_id=None):
     BasePage.__init__(self, driver)
     url_manager = UrlManager(page_id=page_id)
     self.page_url = url_manager.edit_page_url()
Example #26
0
def app_specific_action(webdriver, datasets):
    page = BasePage(webdriver)
    if datasets['custom_issues']:
        issue_key = datasets['custom_issue_key']

    # To run action as specific user uncomment code bellow.
    # NOTE: If app_specific_action is running as specific user, make sure that app_specific_action is running
    # just before test_2_selenium_z_log_out action
    #
    # @print_timing("selenium_app_specific_user_login")
    # def measure():
    #     def app_specific_user_login(username='******', password='******'):
    #         login_page = Login(webdriver)
    #         login_page.delete_all_cookies()
    #         login_page.go_to()
    #         login_page.set_credentials(username=username, password=password)
    #         if login_page.is_first_login():
    #             login_page.first_login_setup()
    #         if login_page.is_first_login_second_page():
    #             login_page.first_login_second_page_setup()
    #         login_page.wait_for_page_loaded()
    #     app_specific_user_login(username='******', password='******')
    # measure()

    @print_timing("selenium_app_custom_action")
    def measure():
        @print_timing("selenium_app_custom_action:view_issue")
        def sub_measure():
            page.go_to_url(f"{JIRA_SETTINGS.server_url}/browse/{issue_key}")
            page.wait_until_visible((By.ID, "summary-val"))  # Wait for summary field visible

            WebDriverWait(webdriver, 20).until(
                ec.frame_to_be_available_and_switch_to_it((By.ID, 'tr-frame-panel-results')))
            
            loginButtons = webdriver.find_elements(By.XPATH, "//a[contains(text(),  'Log in to TestRail')]")
            webdriver.save_screenshot('login_' + time.strftime("%Y%m%d-%H%M%S") + '.png')
            if len(loginButtons) > 0:
                loginButtons[0].click()

                webdriver.switch_to.window(webdriver.window_handles[1])
                
                email_add = "*****@*****.**"
                psw = "Testrail123"
                email_address = (By.ID, "name")

                page.wait_until_visible(email_address)
                
                set_email = "document.getElementById('name').value = '{}';".format(
                    email_add)
                set_password = "******".format(
                    psw)
                webdriver.execute_script(set_email)
                webdriver.execute_script(set_password)

                page.get_element((By.ID, "button_primary")).click()

                webdriver.close()
                webdriver.switch_to.window(webdriver.window_handles[0])
                webdriver.refresh()
                webdriver.switch_to.default_content()     
        sub_measure()
    measure()
 def __init__(self, driver, project_key):
     BasePage.__init__(self, driver)
     self.project_key = project_key
     url_manager = UrlManager(project_key=project_key)
     self.page_url = url_manager.project_url()
 def __init__(self, driver, project_key, repo_slug):
     BasePage.__init__(self, driver)
     url_manager = UrlManager(project_key=project_key, repo_slug=repo_slug)
     self.page_url = url_manager.commits_url()
 def __init__(self, driver, user):
     BasePage.__init__(self, driver)
     url_manager = UrlManager(user=user)
     self.page_url = url_manager.user_settings_url()
 def __init__(self, driver, user, repo_slug):
     BasePage.__init__(self, driver)
     url_manager = UrlManager(user=user, repo_slug=repo_slug)
     self.page_url = url_manager.fork_repo_url()