def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = 'this is a link to' actions.step('Find all elements by partial_link_text') links = browser.find_all(partial_link_text=selector) assert len(links) == 1
def assert_page_in_list(page_name): actions.step('Verify that page {} is in the list'.format(page_name)) imported_pages = elements('#pageObjects>div>input.page-name') for page in imported_pages: if page.get_attribute('value') == page_name: return raise AssertionError('Page {} was not found in the list'.format(page_name))
def test(data): actions.navigate(data.env.url + 'dynamic-elements/?delay=5') browser = actions.get_browser() execution.settings['implicit_wait'] = 10 actions.step('Find element by id with settings timeout') button = browser.find(id='button-five') assert button.text == 'Click Me'
def add_tag(tag_name): actions.step('Add tag {}'.format(tag_name)) tags_input_element = element(tags_input) value = tags_input_element.value if value: tag_name = ', ' + tag_name tags_input_element.send_keys(tag_name)
def test(data): actions.navigate(data.env.url+'elements/') browser = actions.get_browser() execution.settings['implicit_wait'] = 0 actions.step('Find element by id with settings timeout equals zero') button = browser.find(id='button-one') assert button.text == 'Click Me'
def add_suite(suite_name): actions.step('Add suite {}'.format(suite_name)) suite_name_split = suite_name.split('.') if len(suite_name_split) > 1: list_common.add_file_to_folder(suite_name_split, create_folders=True) else: add_suite_to_current_folder(suite_name)
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = '//input[@type="checkbox"]' actions.step('Find all elements by xpath') checkboxes = browser.find_all(xpath=selector) assert len(checkboxes) == 2
def add_test(test_name): actions.step('Add test {}'.format(test_name)) test_name_split = test_name.split('.') if len(test_name_split) > 1: list_common.add_file_to_folder(test_name_split, create_folders=True) else: add_test_to_current_folder(test_name)
def add_folder(folder_name): actions.step('Add folder {}'.format(folder_name)) folder_name_split = folder_name.split('.') if len(folder_name_split) > 1: list_common.add_folder(folder_name_split) else: list_common.add_folder_to_current_folder(folder_name)
def verify_page_in_list(page_name): actions.step('Verify that page {} is in the list'.format(page_name)) imported_pages = elements('#pageObjects>div>input.selected-page') for page in imported_pages: if page.get_attribute('value') == page_name: return raise Exception('Page {} was not found in the list'.format(page_name))
def add_page(page_name): actions.step('Add page {}'.format(page_name)) page_name_split = page_name.split('.') if len(page_name_split) > 1: list_common.add_file_to_folder(page_name_split, create_folders=True) else: add_page_to_current_folder(page_name)
def verify_error_message(error_message): actions.step('Verify that the error {} is displayed'.format(error_message)) actions.wait_for_element_visible(error_modal) errors = elements(css='#errorList>li') for error in errors: if error.text == error_message: return raise Exception('Error message {} was not found'.format(error_message))
def access_project(project_name): actions.step('Access project {}'.format(project_name)) items = elements(project_list_item) for item in items: if item.text == project_name: item.click() return raise Exception('Project {} not found'.format(project_name))
def test(data): actions.navigate(data.env.url + 'dynamic-elements/?delay=5') browser = actions.get_browser() actions.step('Find element by id with timeout') try: button = browser.find(id='button-one', timeout=3, wait_displayed=True) except ElementNotDisplayed: pass
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = '.invalid-selector-value' actions.step('Find all elements by css') elems = browser.find_all(css=selector) assert type(elems) == list assert len(elems) == 0
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() actions.step('Find parent element') body = browser.find('body') actions.step('Find child element by id') inputs = body.find_all(tag_name='input') assert len(inputs) == 5
def test(data): actions.navigate(data.env.url+'elements/') browser = actions.get_browser() selector = 'exampleRadioButtons' actions.step('Find all elements by name') radio_buttons = browser.find_all(name=selector) assert len(radio_buttons) == 2 for radio in radio_buttons: assert type(radio) == ExtendedWebElement
def assert_toast_message_is_displayed_and_contains(toast_message): actions.step('Assert a toast is displayed with message {}'.format(toast_message)) for _ in range(6): toasts = elements('div.toast>.toast-message') for toast in toasts: if toast_message in toast.text: return True time.sleep(0.5) assert False, 'Toast with message "{}" was not found'.format(toast_message)
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = '.invalid-selector-value' actions.step('Find element by css') try: elem = browser.find(css=selector) except ElementNotFound: pass
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() actions.step('Find parent element by id') container = browser.find(id='button-one-container') actions.step('Find child element by id') click_button = container.find(id='button-one') assert type(click_button) == ExtendedWebElement assert click_button.text == 'Click Me'
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = 'img#image1' actions.step('Find element by css') img = browser.find(css=selector) assert type(img) == ExtendedWebElement assert img.selector_type == 'css' assert img.selector_value == selector assert img.name == selector
def test(data): actions.navigate(data.env.url+'elements/') browser = actions.get_browser() actions.step('Find element by tuple without element name') click_me_button = browser.find(('id', 'button-one')) assert type(click_me_button) == ExtendedWebElement assert click_me_button.text == 'Click Me' assert click_me_button.selector_type == 'id' assert click_me_button.selector_value == 'button-one' assert click_me_button.name == 'button-one'
def wait_for_test_to_run(timeout=10): actions.step('Wait for test to run') get_browser().wait_for_element_displayed('#testRunModal', timeout=10) selector = '#testRunModal i.fa.fa-cog.fa-spin' for _ in range(timeout): spinners = elements(selector) if not any(x.is_displayed() for x in spinners): return time.sleep(1) raise TimeoutError('waiting for test to finish running')
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = '//img[@id="image1"]' actions.step('Find element by xpath') img = browser.find(xpath=selector) assert type(img) in [ExtendedRemoteWebElement, ExtendedFirefoxWebElement] assert img.selector_type == 'xpath' assert img.selector_value == selector assert img.name == selector
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() click_me_button = browser.find_element_by_id('button-one') assert type(click_me_button) == WebElement actions.step('Find element given a WebElement') result_click_me_button = browser.find(click_me_button) assert type(result_click_me_button) == ExtendedWebElement actions.step('Find element given a ExtendedWebElement') result_click_me_button = browser.find(click_me_button) assert type(result_click_me_button) == ExtendedWebElement
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = 'img' actions.step('Find element by tag_name') img = browser.find(tag_name=selector) assert type(img) in [ExtendedRemoteWebElement, ExtendedFirefoxWebElement] assert img.selector_type == 'tag_name' assert img.selector_value == selector assert img.name == selector assert '/static/images/forkme.png' in img.get_attribute('src')
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = 'textarea-name' actions.step('Find element by name') text_area = browser.find(name=selector) assert type(text_area) == ExtendedWebElement assert text_area.text == '' assert text_area.selector_type == 'name' assert text_area.selector_value == selector assert text_area.name == selector
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = 'input[type="checkbox"]' actions.step('Find element by tuple') checkboxes = browser.find_all(('css', selector)) assert len(checkboxes) == 2 for checkbox in checkboxes: assert checkbox.selector_type == 'css' assert checkbox.selector_value == selector assert checkbox.name == selector
def test(data): actions.navigate(data.env.url + 'elements/') browser = actions.get_browser() selector = 'this is a link to index' actions.step('Find element by link_text') link = browser.find(link_text=selector) assert type(link) == ExtendedWebElement assert link.text == selector assert link.selector_type == 'link_text' assert link.selector_value == selector assert link.name == selector
def test(data): actions.navigate(data.env.url+'elements/') browser = actions.get_browser() selector = 'img' actions.step('Find element by tag_name') img = browser.find(tag_name=selector) assert type(img) == ExtendedWebElement assert img.selector_type == 'tag_name' assert img.selector_value == selector assert img.name == selector assert '/static/images/cat-image.jpg' in img.get_attribute('src')