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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()