def test_that_pagination_works_for_search_terms_with_quotes(self): """ tests pagination works for search terms with quotes bug 529694 """ sel = self.selenium search_page_obj = search_page.SearchPage(sel) searchTerms = ["\"bookmarks\"", "\"clear history\""] for current_search_term in searchTerms: search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(current_search_term) count = 0 while (count < 5): if sel.is_element_present(search_page_obj.next_page_link): search_page_obj.click( search_page_obj.next_page_link, True, vars.ConnectionParameters.page_load_timeout) self.failUnless( sel.is_element_present(search_page_obj.result_div), "No results for %s on page # %s" % (current_search_term, (count + 1))) count = count + 1 else: break
def test_search_num_results(self, testsetup): search_page_obj = search_page.SearchPage(testsetup) search_page_obj.go_to_search_page() search_terms = ["crashes", "firefox crashes"] for current_search_term in search_terms: search_page_obj.do_search_on_search_box(current_search_term) not_found = True counter = 0 while (not_found and counter < 3): if not (search_page_obj.is_search_available()): search_page_obj.refresh() counter += 1 else: not_found = False # Verify that there are 10 results on the page # After that, click the "Next" link, # until we're at the end of the search results: counter = 1 while (search_page_obj.is_element_present( search_page_obj.next_page_link) and counter < 11): assert search_page_obj.are_ten_results_present( ), "Ten results not present for %s" % (current_search_term) search_page_obj.click(search_page_obj.next_page_link, True) # Verify that we have a Next link on this page, otherwise, # we're at the end of the results and don't need to # count the results anymore! counter += 1
def test_tiki_search_result(self, testsetup): support_home_page_obj = support_home_page.SupportHomePage(testsetup) search_page_obj = search_page.SearchPage(testsetup) search_term = 'firefox crashes' support_home_page_obj.go_to_support_home_page() support_home_page_obj.do_search_on_main_search_box( search_term, search_page_obj) not_found = True counter = 0 while (not_found and counter < 3): if not (search_page_obj.is_element_present( search_page_obj.second_page_link)): search_page_obj.refresh() counter += 1 else: not_found = False assert search_page_obj.is_element_present((search_page_obj.second_page_link)),\ "Page-2 link not found" assert search_page_obj.is_element_present((search_page_obj.next_page_link)),\ "Next Page link not found" assert search_term == search_page_obj.get_search_box_value(),\ "search term: %s not found on search box" % search_term assert search_page_obj.is_element_present(search_page_obj.result_div),\ "Results not present" assert search_page_obj.is_element_present(search_page_obj.support_question_link),\ "link=supportquestion not found on search results page" assert search_page_obj.is_element_present(search_page_obj.kb_link),\ "Firefox Help Home link not found on search results page" assert search_page_obj.is_element_present(search_page_obj.question_link),\ "Ask a Question link not found on search results page"
def test_verify_tiki_wiki_markup_in_search_results(self): sel = self.selenium search_page_obj = search_page.SearchPage(sel) # Store some needed variables searchTerms = ["crashes", "firefox crashes"] # This is probably the ugliest JS array ever: regExpList = ["#^\\!+#m", "#^;:#m", "/\\{maketoc\\}/Ui", "#\\{ANAME.*?ANAME\\}#", "/__/", "/\\^(.*?)\\^/", "/\\{[a-zA-Z]+.*\\}/U", "#~/?np~#", "/~(h|t)c~.*\\~\\/\\1c~/U", "/\\(\\((.*)(?:\\|(.*))?\\)\\)/Ue", "#\\[.+\\|(.+)\\]#U", "#\\'\\'#", "#%{2,}#"] for currentTerm in searchTerms: search_page_obj.go_to_search_page() # Click the search field and enter the search terms search_page_obj.do_search_on_search_box(currentTerm) # Verify that there are 10 results on the page # After that, click the "Next" link, until we're at the end # of the search results: counter = 1 while sel.is_element_present("link=Next") and counter <= 6: for currentRegExp in regExpList: #print("DEBUG: Current RegExp: " + currentRegExp) self.failIf(sel.is_element_present( "//div[@class=\"search-results\"]/div/p[contains( . ,\"" + currentRegExp + "\")]"), "Results contained %s" % currentRegExp) sel.click("link=Next") sel.wait_for_page_to_load( vars.ConnectionParameters.page_load_timeout) # Verify that we have a Next link on this page, otherwise, # we're at the end of the results and don't need to count # the results anymore! counter += 1
def test_old_search_redirect(self): sel = self.selenium search_page_obj = search_page.SearchPage(sel) search_word = 'shockwave' """ check redirect from old tiki search """ search_page_obj.open("/tiki-newsearch.php?where=all&locale=en-US&q=%s&sa=Search" %(search_word)) not_found = True counter = 0 while(not_found and counter < 3): if(not(search_page_obj.is_search_available())): search_page_obj.refresh() counter = counter+1 else: not_found = False self.failUnless("/search?" in sel.get_location(),"%s incorrect redirection" % sel.get_location()) self.failUnless(search_word in sel.get_location(), "No results for %s in %s" %(search_word,sel.get_location())) """ check redirect from old php search """ search_page_obj.open("/search.php?q=%s&locale=en-US&where=all" %(search_word)) not_found = True counter = 0 while(not_found and counter < 3): if(not(search_page_obj.is_search_available())): search_page_obj.refresh() counter = counter+1 else: not_found = False self.failUnless("/search?" in sel.get_location(),"%s incorrect redirection" % sel.get_location()) self.failUnless(search_word in sel.get_location(), "No results for %s in %s" %(search_word,sel.get_location()))
def test_anon_pagination_numeric_links(self, testsetup): support_hp_obj = support_home_page.SupportHomePage(testsetup) search_page_obj = search_page.SearchPage(testsetup) # Description: # This testcase checks the following about pagination links # a) the current page is not a link # b) All the other page links are active next = "Next" # Do a search for which hits are expected... search_word = "bookmarks" support_hp_obj.do_search_on_main_search_box(search_word, search_page_obj) not_found = True counter = 1 while (not_found and counter < 5): if (not (testsetup.selenium.is_text_present(search_word))): testsetup.selenium.refresh() testsetup.selenium.wait_for_page_to_load(testsetup.timeout) time.sleep(2) counter = counter + 1 else: not_found = False pageCounter = 1 # store the last link url = "/search?q=%s" % (search_word) search_page_obj.open(url) if (testsetup.selenium.is_element_present( "css=ol.pagination > li:nth-child(7)")): lastLink = int( testsetup.selenium.get_text( "css=ol.pagination > li:nth-child(7)")) else: return # Iterate over every page of hits... while (testsetup.selenium.is_element_present( search_page_obj.next_page_link) and int(pageCounter) + 1 <= int(lastLink) - 3): # Verify that all page numbers previous to current page ARE active linkNumber = 1 while int(linkNumber) < int(pageCounter): if int(linkNumber) < int(pageCounter) - 3: linkNumber = linkNumber + 1 continue assert(\ testsetup.selenium.is_element_present("link=" + str(linkNumber)),\ "Previous page %s is not a link" % str(linkNumber)) linkNumber = linkNumber + 1 # Verify that all page numbers following current page ARE active linkNumber = int(pageCounter) + 1 while int(linkNumber) <= int(pageCounter) + 3: assert(\ testsetup.selenium.is_element_present("link=" + str(linkNumber)),\ "Following page %s is not a link" % str(linkNumber)) linkNumber = linkNumber + 1 pageCounter = int(pageCounter) + 1 search_page_obj.click(search_page_obj.next_page_link, True, testsetup.timeout)
def test_search_terms_with_quotes(self): sel = self.selenium search_page_obj = search_page.SearchPage(sel) searchTerms = ["\"bookmark\"", "\"clear history\""] for current_search_term in searchTerms: search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(current_search_term) self.failUnless(sel.is_element_present(search_page_obj.result_div), "No results for %s" % (current_search_term))
def test_search_advanced_links(self, testsetup): search_page_obj = search_page.SearchPage(testsetup) refine_search_page_obj = refine_search_page.RefineSearchPage(testsetup) support_home_page_obj = support_home_page.SupportHomePage(testsetup) support_home_page_obj.go_to_support_home_page() support_home_page_obj.do_search_on_main_search_box("dfg", search_page_obj) search_page_obj.click_refine_search_link(refine_search_page_obj) assert "a=2" in refine_search_page_obj.get_url_current_page(),\ "%s not in URL: %s" % ("a=2", refine_search_page_obj.get_url_current_page)
def test_search_unknownchars(self, testsetup): search_pg = search_page.SearchPage(testsetup) # We're checking to ensure that # "unknown" characters like # "�" don't appear search_pg.open( "/search?where=all&locale=ja&q=%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E" + "%E3%83%BC%E3%82%AF%E3%81%AE%E6%95%B4%E7%90%86&sa") assert search_pg.is_text_present(u"ブックマークの整理") assert not(search_pg.is_text_present(u"�"))
def test_search_advanced_links(self): sel = self.selenium search_page_obj = search_page.SearchPage(sel) refine_search_page_obj = refine_search_page.RefineSearchPage(sel) support_home_page_obj = support_home_page.SupportHomePage(sel) support_home_page_obj.go_to_support_home_page() support_home_page_obj.do_search_on_main_search_box( "dfg", search_page_obj) search_page_obj.click_refine_search_link(refine_search_page_obj) self.failUnless("a=2" in refine_search_page_obj.get_url_current_page(), "%s not in URL: %s" % ("a=2", sel.get_location()))
def test_02_search(self): """搜索 演示失败""" keywords = "挨踢脱口秀" sp = search_page.SearchPage(self.driver) sp.input_keyword_run(self.url, keywords) try: self.assertIn(keywords, '2', '失败') print('成功,搜索的关键字=', keywords) except Exception as e: print('出错了!', str(e)) self.imgs.append(self.driver.get_screenshot_as_base64()) raise
def test_search_on_home_page(self, testsetup): support_home_page_obj = support_home_page.SupportHomePage(testsetup) search_page_obj = search_page.SearchPage(testsetup) search_term = 'iphone' support_home_page_obj.go_to_support_home_page() support_home_page_obj.do_search_on_main_search_box( search_term, search_page_obj) url = search_page_obj.get_url_current_page() assert search_term in url,\ "Search term %s does not exist in the url %s" % (search_term, url)
def test_search_unicode_chars(self): sel = self.selenium search_page_obj = search_page.SearchPage(sel) refine_search_page_obj = refine_search_page.RefineSearchPage(sel) search_terms = [u"benötigt"] for current_search_term in search_terms: refine_search_page_obj.go_to_refine_search_page() refine_search_page_obj.do_search_on_support_questions(current_search_term, search_page_obj) if(not(search_page_obj.is_search_available())): search_page_obj.refresh() if search_page_obj.is_result_present(): self.failUnless(sel.is_text_present(current_search_term), "%s not present in search results " %(current_search_term))
def test_search_on_home_page(self): sel = self.selenium support_home_page_obj = support_home_page.SupportHomePage(sel) search_page_obj = search_page.SearchPage(sel) search_term = 'iphone' support_home_page_obj.go_to_support_home_page() support_home_page_obj.do_search_on_main_search_box( search_term, search_page_obj) url = search_page_obj.get_url_current_page() self.failUnless( search_term in url, "Search term %s does not exist in the url %s" % (search_term, url))
def test_cant_find_what_youre_looking_for_test(self, testsetup): search_page_obj = search_page.SearchPage(testsetup) searchTerms = ["firefox", "bgkhdsaghb"] for current_search_term in searchTerms: search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(current_search_term) assert search_page_obj.is_text_present(\ "Can't find what you're looking for?"),\ "'Can't find text' not present" assert search_page_obj.is_element_present(\ search_page_obj.support_question_link),\ "Ask question link not present"
def test_advanced_search_checked(self, testsetup): refine_search_page_obj = refine_search_page.RefineSearchPage(testsetup) search_page_obj = search_page.SearchPage(testsetup) refine_search_page_obj.go_to_refine_search_page() assert refine_search_page_obj.is_kb_cat_checked(),\ "Default search forum is not set to Firefox" search_word = 'firefox crashes' # search kb tab refine_search_page_obj.do_search_on_knowledge_base( search_word, search_page_obj) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter += 1 else: not_found = False search_page_obj.is_the_current_page # search support questions tab refine_search_page_obj.go_to_refine_search_page() refine_search_page_obj.do_search_on_support_questions( search_word, search_page_obj) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter += 1 else: not_found = False search_page_obj.is_the_current_page # search discussion forums tab refine_search_page_obj.go_to_refine_search_page() refine_search_page_obj.do_search_on_discussion_forums( search_word, search_page_obj) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter += 1 else: not_found = False search_page_obj.is_the_current_page
def test_search_decoding(self): sel = self.selenium search_page_obj = search_page.SearchPage(sel) search_term = "%3D" search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(search_term) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter = counter + 1 else: not_found = False self.assertNotEqual("=", sel.get_value(search_page_obj.search_box)) self.assertEqual(search_term, sel.get_value(search_page_obj.search_box)) search_term = "%25D" search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(search_term) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter = counter + 1 else: not_found = False self.assertNotEqual("=", sel.get_value(search_page_obj.search_box)) self.assertEqual(search_term, sel.get_value(search_page_obj.search_box)) search_term = "&lsquo" search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(search_term) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter = counter + 1 else: not_found = False self.assertNotEqual("'", sel.get_value(search_page_obj.search_box)) self.assertEqual(search_term, sel.get_value(search_page_obj.search_box))
def test_advanced_search_checked(self): sel = self.selenium refine_search_page_obj = refine_search_page.RefineSearchPage(sel) search_page_obj = search_page.SearchPage(sel) refine_search_page_obj.go_to_refine_search_page() self.failUnless(refine_search_page_obj.is_kb_cat_checked(), "Default search forum is not set to Firefox") search_word = 'firefox crashes' """ search kb tab """ refine_search_page_obj.do_search_on_knowledge_base( search_word, search_page_obj) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter = counter + 1 else: not_found = False search_page_obj.is_the_current_page """ search support questions tab """ refine_search_page_obj.go_to_refine_search_page() refine_search_page_obj.do_search_on_support_questions( search_word, search_page_obj) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter = counter + 1 else: not_found = False search_page_obj.is_the_current_page """ search discussion forums tab """ refine_search_page_obj.go_to_refine_search_page() refine_search_page_obj.do_search_on_discussion_forums( search_word, search_page_obj) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter = counter + 1 else: not_found = False search_page_obj.is_the_current_page
def test_nonnumeric_search_pages(self, testsetup): search_page_obj = search_page.SearchPage(testsetup) url = "/en-US/search?q=firefox+crashes&page=" pages = ["string", "2str", "$@&%*", "?2"] for page in pages: search_page_obj.open(url + page) not_found = True counter = 0 while not_found and counter < 3: if not(search_page_obj.is_search_available()): search_page_obj.refresh() counter += 1 else: not_found = False assert search_page_obj.is_element_present(search_page_obj.result_div),\ "No search results for non-numeric pages"
def test_search_quotes(self, testsetup): search_page_obj = search_page.SearchPage(testsetup) search_terms = ["\"lost bookmark\"", "\"clear history\""] for current_search_term in search_terms: search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(current_search_term) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter += 1 else: not_found = False assert search_page_obj.is_element_present(search_page_obj.result_div),\ "No search results for %s" % (current_search_term)
def test_search_decoding(self, testsetup): sel = testsetup.selenium search_page_obj = search_page.SearchPage(testsetup) search_term = "%3D" search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(search_term) not_found = True counter = 0 while not_found and counter < 3: if not(search_page_obj.is_search_available()): search_page_obj.refresh() counter = counter + 1 else: not_found = False Assert.not_equal("=", sel.get_value(search_page_obj.search_box)) Assert.equal(search_term, sel.get_value(search_page_obj.search_box)) search_term = "%25D" search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(search_term) not_found = True counter = 0 while not_found and counter < 3: if not(search_page_obj.is_search_available()): search_page_obj.refresh() counter = counter + 1 else: not_found = False Assert.not_equal("=", sel.get_value(search_page_obj.search_box)) Assert.equal(search_term, sel.get_value(search_page_obj.search_box)) search_term = "&lsquo" search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(search_term) not_found = True counter = 0 while not_found and counter < 3: if not(search_page_obj.is_search_available()): search_page_obj.refresh() counter = counter + 1 else: not_found = False Assert.not_equal("'", sel.get_value(search_page_obj.search_box)) Assert.equal(search_term, sel.get_value(search_page_obj.search_box))
def test_nonnumeric_search_pages(self): sel = self.selenium search_page_obj = search_page.SearchPage(sel) url = "/en-US/search?q=firefox+crashes&page=" pages = ["string", "2str", "$@&%*", "?2"] for page in pages: search_page_obj.open(url + page) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_search_available())): search_page_obj.refresh() counter = counter + 1 else: not_found = False self.failUnless( search_page_obj.is_element_present(search_page_obj.result_div), "No search results for non-numeric pages")
def test_case(): # url = r"https://cn.bing.com" url = r"https://www.baidu.com" driver = webdriver.Firefox() mf_content = r"python" mf_content2 = r"pycharm" # dr = base_page.BasePage(driver, url) dr2 = search_page.SearchPage(driver, url) dr2.open() logging.info("open browser") dr2.search_content(mf_content) logging.info("input content:{}".format(mf_content)) dr2.btn_click() logging.info("click") time.sleep(5) logging.info("wait for 5 seconds") driver.close() logging.info("close browser") # logging.info("===============================================") mf_init_log.log_teardown()
def test_that_pagination_works_for_search_terms_with_quotes( self, testsetup): """ tests pagination works for search terms with quotes bug 529694 """ search_page_obj = search_page.SearchPage(testsetup) searchTerms = ["\"bookmarks\"", "\"clear history\""] for current_search_term in searchTerms: search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(current_search_term) count = 0 while count < 5: if search_page_obj.is_element_present( search_page_obj.next_page_link): search_page_obj.click_next_page_link() assert search_page_obj.is_element_present(search_page_obj.result_div),\ "No results for %s on page # %s" % (current_search_term, (count + 1)) count += 1 else: break
def test_tiki_search_result(self): sel = self.selenium support_home_page_obj = support_home_page.SupportHomePage(sel) search_page_obj = search_page.SearchPage(sel) search_term = 'firefox crashes' support_home_page_obj.go_to_support_home_page() support_home_page_obj.do_search_on_main_search_box( search_term, search_page_obj) not_found = True counter = 0 while (not_found and counter < 3): if (not (search_page_obj.is_element_present( search_page_obj.second_page_link))): sel.refresh() sel.wait_for_page_to_load( vars.ConnectionParameters.page_load_timeout) counter = counter + 1 else: not_found = False self.failUnless( search_page_obj.is_element_present( (search_page_obj.second_page_link))) self.failUnless( search_page_obj.is_element_present( (search_page_obj.next_page_link))) self.assertEqual(search_term, search_page_obj.get_search_box_value()) self.failUnless( search_page_obj.is_element_present(search_page_obj.result_div), "Result not present") self.failUnless( search_page_obj.is_element_present( search_page_obj.support_question_link)) self.failUnless( search_page_obj.is_element_present(search_page_obj.kb_link)) self.failUnless( search_page_obj.is_element_present(search_page_obj.question_link))
def test_cant_find_what_youre_looking_for_test(self): sel = self.selenium search_page_obj = search_page.SearchPage(sel) searchTerms = ["firefox", "bgkhdsaghb"] for current_search_term in searchTerms: search_page_obj.go_to_search_page() search_page_obj.do_search_on_search_box(current_search_term) # # try: # sel.click("css=div#basic-search > form > input[type='submit']") # sel.wait_for_page_to_load( # vars.ConnectionParameters.page_load_timeout) # except: # pass self.failUnless( search_page_obj.is_text_present( "Can't find what you're looking for?"), "Can't find text not present") self.failUnless( search_page_obj.is_element_present( "link=Ask a support question instead!"), "Ask question link not present")