def test05_tags(tags_location): """ * Test Tags in tags page and blog page. * - Get one of blogs posts . - Get tags page, get one of tags[TAG]. - Check that posts have [TAG]. """ base.info("Open one of blogs posts") base.open_random_blog() assert "posts" in driver.current_url base.info("Get tags page, get one of tags[TAG].") if tags_location == "blogs_tags": base.find_element(driver, "blog_tags_page").click() base.info("Check that posts have [TAG].") tmp = base.find_element(tags_location) tags = tmp.find_element_by_tag_name("li") if tags: tag = random.choice(tags) tag_name = tag.text tag.click() assert tag_name in driver.current_url posts_with_tags = base.find_element(driver, "posts_with_tags") post = random.choice(posts_with_tags.find_elements_by_class_name("post")) post_name = post.text post.click() assert post_name in driver.current_url assert tag_name in driver.page_source
def test_001_search_box(): """ * test search box * - Get alerts page. - Use search box with not exist value, should return that value doesn't exist. - Use Search box with exist value, should return right value. """ base.wait_until_element_located(driver, "alerts_table") is True rows_count = len(base.get_table_rows(driver, "alerts_table")) base.info( " Use search box with not exist value, should return that value doesn't exist." ) alerta_search_box = base.find_element(driver, "alerta_search_box") random_value = base.rand_string() alerta_search_box.send_keys(random_value) elem = base.find_element(driver, "no_alerts") assert "There is no alerts matching your criteria" == elem.text base.info(" Use Search box with exist value, should return right value") alerta_search_box.clear() alerta_search_box.send_keys(" ") base.wait_until_element_located(driver, "alerts_table") is True ramdom_row_number = random.randint(1, rows_count) table_row = base.get_table_row(driver, "alerts_table", ramdom_row_number - 1) alerta_search_box.clear() alerta_search_box.send_keys(table_row[7].split()[2]) alerta_table_after_search = base.get_table_rows(driver, "alerts_table") for i in range(len(alerta_table_after_search)): assert table_row[7].split()[2] in base.get_table_row( driver, "alerts_table", i)[7]
def test04_blog_posts_navigation(): """ * Test navigation bar elements [about, contact, tags]. * - Get one of blogs posts . - Test [About, Contact, Tags] in navigation bar elements [about]. """ base.info("Get one of blogs posts") base.open_random_blog() assertIn("posts", driver.current_url) base.info("Test about in navigation bar elements") about_elem = base.find_element(driver, "blog_about_page") about_elem.click() assert "about" in driver.current_url base.info("Test contact in navigation bar elements") contact_elem = base.find_element(driver, "blog_contact_page") contact_elem.click() assert "contactus" in driver.current_url base.info("Test tags in navigation bar elements") tags_elem = base.find_element(driver, "blog_tags_page") tags_elem.click() assert "tags" in driver.current_url
def test07_filters_in_workers_page(filter_type, state): """ * test filters [Success, Failure, New, waiting, Halted ] in workers page.* - Get workers page. - Get filtered workers number from summary table. - Click filter , Check that it return right filtered workers only . """ base.find_element(driver, "workers_bage").click() assert "workers" in driver.current_url base.info("Get filtered workers number from summary table.") head_elements = base.get_table_head_data(driver, "summary_table") column = [i for i, element in enumerate(head_elements) if element == filter_type][0] summary_table = base.find_element(driver, "summary_table") table_body = summary_table.find_element_by_tag_name("tbody") filtered_workers = int(table_body.find_elements_by_tag_name("td")[column].text) base.info("Click filter , Check that it return right filtered workers only .") filter_element = base.find_element(driver, "{}_filter".format(filter_type)) filter_element.click() if filtered_workers == 0: assert "There is no Workers matching your criteria" == base.find_element(driver, "no_workers").text else: table_rows = base.get_table_rows(driver, "workers_table") for i in range(len(table_rows)): assert state == base.get_table_row(driver, "workers_table", i)[1] assert len(table_rows) == filtered_workers
def test_003_filters_in_jobs_page(filter_type, state): """ * test filters [Success, Failure, New, Running, Halted ] in jobs page.* - Get jobs page. - Get filter jobs number from summary table. - Click filter , Check that it return right filtered jobs only . """ base.wait_until_element_located(driver, "Jobs_bage") is True base.find_element(driver, "Jobs_bage").click() assert "tasks" in driver.current_url base.wait_until_element_located(driver, "summary_table") is True base.info("Get succfilter ess jobs number from summary table.") head_elements = base.get_table_head_data(driver, "summary_table") job_head = "{} Tasks".format(filter_type) column = [i for i, element in enumerate(head_elements) if element == job_head][0] summary_table = base.find_element(driver, "summary_table") table_body = summary_table.find_element_by_tag_name("tbody") filtered_jobs = int(table_body.find_elements_by_tag_name("td")[column].text) base.info("Click filter , Check that it return right filtered jobs only .") filter_element = base.find_element(driver, "{}_filter".format(filter_type)) filter_element.click() if filtered_jobs == 0: assert "There is no Jobs matching your criteria" == base.find_element(driver, "no_jobs").text else: table_rows = base.get_table_rows(driver, "jobs_table") for i in range(len(table_rows)): assert state == base.get_table_row(driver, "jobs_table", i)[3] assert len(table_rows) == filtered_jobs
def test_004_job_details(): """ - Get jobs page. - Pick up one of jobs[J] . - Check details of the job [J] . """ base.wait_until_element_located(driver, "Jobs_bage") is True base.find_element(driver, "Jobs_bage").click() assert "tasks" in driver.current_url base.info("Pick up one of jobs[J].") base.wait_until_element_located(driver, "jobs_table") is True table_rows = base.get_table_rows(driver, "jobs_table") job_index = random.randint(1, len(table_rows)) job_data = base.get_table_row(driver, "jobs_table", job_index) base.info("check details of the job [J]") details_button = table_rows[job_index - 1].find_element_by_tag_name("button") details_button.click() time.sleep(10) items_list = driver.find_element_by_class_name("list-group") items = items_list.find_elements_by_tag_name("li") item_data = [item.get_attribute("textContent") for item in items] state = [item[item.find(":") + 2 :] for item in item_data if "State" in item][0] assert job_data[3] == state
def test_002_delete_alerts(): """ * test delete alerts. * - Get alerts page. - Use delete button, check that all alerts has been deleted. """ base.info("Use delete button, check that all alerts has been deleted.") delete_button = base.find_element(driver, "delete_alerts") delete_button.click() base.find_element(driver, "confirm_delete_alert").click() assert "All the alerts have been deleted." == base.find_element( driver, "no_alerts").text
def test05_check_summary_table_head_elements_in_workers_page(): """ * Check summary table head elements * - Get all head values and check it is as expected . """ base.find_element(driver, "workers_bage").click() assert "workers" in driver.current_url base.info("Get all head values and check it is as expected ") expected_head_elements = ["Total", "New", "Success", "Failure", "Waiting", "Halted"] head_elements = base.get_table_head_data(driver, "summary_table") assert set(expected_head_elements) == set(head_elements)
def test03_search_page_close(): """ * test close icon in search page * - Get blog page . - Open search page. - Use close icon on search page, Check it redirect to home page again successfully. """ base.info(" Open search page.") base.find_element("blogs_home_search").click() base.info("Use close icon on search page, Check it redirect to home page again successfully.") close_icon = base.find_element(driver, "blogs_search_close") close_icon.click() assert base.wait_until_element_located(driver, "blogs_list") is True
def before(): global driver global rows, blogs driver = base.set_browser() base.get_page(driver, page_url) blogs = base.find_element("blogs_list") rows = blogs.find_elements_by_class_name("row") assert "Blogs " in driver.title
def test06_ALL_filter_in_workers_page(): """ * test ALL filter * - Get workers page. - Click All filter , Check that it return all workers. - Check that it has same value as all workers value in summary table. """ base.find_element(driver, "workers_bage").click() assert "workers" in driver.current_url rows_count = len(base.get_table_rows(driver, "workers_table")) base.info("Click All filter , Check that it return all jobs.") All_element = base.find_element(driver, "ALL_filter") All_element.click() rows_count_after_all = len(base.get_table_rows(driver, "workers_table")) assert rows_count_after_all == rows_count
def test_002_ALL_filter_in_jobs_page(): """ * test ALL filter * - Get jobs page. - Click All filter , Check that it return all jobs. - Check that it has same value as all jobs value in summary table. """ base.wait_until_element_located(driver, "Jobs_bage") is True base.find_element(driver, "Jobs_bage").click() assert "tasks" in driver.current_url base.wait_until_element_located(driver, "jobs_table") is True base.info("Click All filter , Check that it return all jobs.") rows_count = len(base.get_table_rows(driver, "jobs_table")) All_element = base.find_element(driver, "ALL_filter") All_element.click() rows_count_after_all = len(base.get_table_rows(driver, "jobs_table")) assert rows_count_after_all == rows_count
def test02_blog_search_box(): """ * test search in home bage in blogs package. * - Get blog bage . - Use Search box in home bage. - Check search box works successfully. - Try to get one of results, should works successfully. """ base.info("Use Search box in home bage.") base.find_element(driver, "blogs_home_search").click() search_box = base.find_element(driver, "blogs_search_box") search_box.send_keys("test") search_icon = base.find_element(driver, "blogs_icon_search") search_icon.click() base.info("Check search box works successfully. ") search_results = base.find_element(driver, "blogs_search_result") results = search_results.find_elements_by_tag_name("li") results_text = base.find_element(driver, "blogs_result_text") assert str(len(results)) in results_text base.info("Try to get one of results, should works successfully.") if results: random_post = random.choice(results) tmp = random_post.text post_name = tmp[tmp.find(":") + 2 :] random_post.find_element_by_tag_name("a").click() assert post_name in driver.current_url
def test01_check_summary_table_head_elements(): """ * Check summary table head elements * - Get all head values and check it is as expected . """ base.wait_until_element_located(driver, "Jobs_bage") is True base.find_element(driver, "Jobs_bage").click() assert "tasks" in driver.current_url base.wait_until_element_located(driver, "summary_table") is True base.info("Get all head values and check it is as expected ") expected_head_elements = [ "Total Tasks", "Success Tasks", "Failure Tasks", "New Tasks", "Running Tasks", "Halted Tasks", ] head_elements = base.get_table_head_data(driver, "summary_table") assert set(expected_head_elements) == set(head_elements)
def test_06_categories_pages(icon): """ * Test categories pages [ facebook, instagram, github,twitter]. * - Get one of blogs posts . - Click on one of icons check it redirect to right page. """ base.info("oprn one of blogs posts") open_random_blog() assert "posts" in driver.current_url categories_pages = base.find_element(driver, "categories_pages") base.info("Click on {} icon check it redirect to right page.".format(icon)) if icon == "facebook": categories_pages.find_element_by_link_text(icon).click() else: categories_pages.find_element_by_class_name("fa-{}".format(icon)).click() assert icon in driver.current_url
def messageText(self): return base.find_element(*self.message_text_loc).text