Example #1
0
 def test_guest_can_go_to_sign_in(self, browser):
     """go to sign in page"""
     home_page = HomePage(browser)  # open home page
     home_page.go_to_sign_in()  # click sign in button
     sign_in_page = SignIn(browser)
     sign_in_page.should_be_authentication_header()  # check if the page is sign in page
     sign_in_page.authentication_should_be_in_breadcrumbs()  # check if the page is followed in breadcrumbs
 def test4_ftp(self):
     '''ftp上传测试'''
     try:
         logger.info("ftp上传测试")
         self.login()
         home = HomePage(self.driver)
         recordset = RecordSet(self.driver)
         home.swich_to_system_label(recordset.recordsetbtn,
                                    "录制参数")  #进入到录制参数页面
         recordset.uncheck_allmuti()
         recordset.start_ftp()
         recordset.ftp_input()
         recordset.ensure()
         home.click_system_setup_blck()
         sleep(1)
         self.check_recorder_massage()
         self.click(self.ftp)
         WebDriverWait(self.driver, 5, 0.5).until(ES.alert_is_present())
         self.accept_alert()
         home.click_record_black()
         sleep(1)
         home.click_record()
         sleep(5)
         recordpage = RecordPage(self.driver)
         self.assertIn(self.gettext(recordpage.ftp_status), "上传完成")
     except Exception as msg:
         logger.error(u"异常原因:%s" % msg)
         self.driver.get_screenshot_as_file(
             os.path.join(readconfig.screen_path, 'test_ftp.png'))
         raise Exception("false")
    def test_create_library(self, mozwebqa):
        #This test is to check the labels of a library on the dashboard
        #Create page objects
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        dashboard_obj = loginpage_obj.login()

        #Create a library. Then go to dashboard and assert that the label is present.
        homepage_obj = dashboard_obj.go_to_home_page()
        libpage_obj = homepage_obj.click_create_lib_btn()
        library_name = libpage_obj.package_name

        dashboard_obj = libpage_obj.header.click_dashboard()
        Assert.true(dashboard_obj.is_the_current_page)
        Assert.true(dashboard_obj.library(library_name).is_displayed, "Library %s not found" % library_name)

        #Click on the edit button of the library.Then create a copy of that library and assert that the label is 'copy'
        libpage_obj = dashboard_obj.library(library_name).click_edit()
        libpage_obj.click_copy()
        copy_library_name = libpage_obj.package_name

        Assert.contains(library_name, copy_library_name)
        Assert.contains('copy', copy_library_name)

        dashboard_obj = libpage_obj.header.click_dashboard()
        Assert.true(dashboard_obj.library(copy_library_name).is_displayed, "Library %s not found" % copy_library_name)

        dashboard_obj.delete_test_data()
class TestPayInfoPage:
    def setup_class(self):
        self.driver = Driver().login()
        self.home_page = HomePage(self.driver)
        self.pay_info_page = PayInfoPage(self.driver)

    def test_goto_pay_info_page(self):
        self.home_page.goto_pay_info_page("tuition", "first")

    def test_check_pay_info_page(self):
        school_name = self.pay_info_page.find_school_name()
        assert "预计此次汇款比银行便宜" in self.pay_info_page._driver.page_source
        assert school_name in self.pay_info_page._driver.page_source

    def test_input_amount(self):
        # self.pay_info_page.click_input_box()
        # sleep(3)
        self.pay_info_page.input_amount("5000")
        sleep(1)

    def test_submit_amount(self):
        self.pay_info_page.click_submit_button()
        assert "学校收款账户信息" in self.pay_info_page._driver.page_source

    def teardown_class(self):
        self.pay_info_page.quit_browser()
 def adjust_subtitles(self, ):
     home = HomePage(self.driver)
     home.goto_links('录播')
     self.start_recording("字幕调整")
     sleep(5)
     self.click(self.subtitlebtn)
     self.select_showbtn()  #显示字幕
     for i in range(3):  # 依次输出前3个默认字幕
         self.output_subtitles(1 + i)
         sleep(5)
     self.edit_subtitles(4)  # 编辑第四条字幕后输出
     self.click(self.outputbtn)
     sleep(5)
     self.select_hidebtn()  #隐藏字幕
     sleep(10)
     self.select_showbtn()  #显示字幕
     sleep(3)
     self.select_rollbtn()  #滚动字幕
     sleep(5)
     self.select_staticbtn()  #静止字幕
     for m in range(1, 7):  # 依次改变字幕颜色
         self.change_font_color(m)
         self.click(self.outputbtn)
         sleep(5)
     for n in range(1, 8):  #依次改变字幕背景颜色
         self.change_background_colorr(n)
         self.click(self.outputbtn)
         sleep(5)
     self.stop_recording()
Example #6
0
 def change_ip(self, addr1, addr2, addr3, addr4, way1, way2, way3, way4):
     home = HomePage(self.driver)
     home.swich_to_basic_label(self.networkbtn, "网络参数")
     sleep(2)
     list1 = [self.netaddr1, self.netaddr2, self.netaddr3, self.netaddr4]
     list2 = [addr1, addr2, addr3, addr4]
     list3 = [self.gateway1, self.gateway2, self.gateway3, self.gateway4]
     list4 = [way1, way2, way3, way4]
     logger.info(u"更改设备IP为:%s,更改设备网关为%s" %
                 (".".join(list2), ".".join(list4)))
     for a in list1:
         self.clear(a)
     for b, c in zip(list1, list2):
         self.input_text(b, c)
     for d in list3:
         self.clear(d)
     for e, f in zip(list3, list4):
         self.input_text(e, f)
     sleep(4)
     self.click(self.sure)
     sleep(2)
     WebDriverWait(self.driver, 5, 0.5).until(ES.alert_is_present())
     self.accept_alert()
     WebDriverWait(self.driver, 5, 0.5).until(ES.alert_is_present())
     self.accept_alert()
     self.driver.switch_to.default_content()
     sleep(8)
 def switch_english(self):
     home = HomePage(self.driver)
     home.swich_to_basic_label(self.languagebtn1, "Language")
     sleep(2)
     self.choose_english()
     sleep(1)
     self.click_surebtn()
    def test_invalid_postalCode(self, gender, first_name, last_name, email,
                                password, day, month, year, company, address,
                                city, state, postal_code, add_info, home_phone,
                                mobile_phone, alias):
        """Attempt to register user with invalid postal code"""

        hp = HomePage(self.driver)
        hp.click_zaloguj_btn()
        lp = LoginPage(self.driver)
        lp.fill_email(email)
        lp.click_create_btn()
        rp = RegisterPage(self.driver)
        rp.choose_gender(gender)
        rp.fill_name(first_name)
        rp.fill_surname(last_name)
        rp.fill_password(password)
        rp.choose_day(day)
        rp.choose_month(month)
        rp.choose_year(year)
        rp.accept_newsletter()
        rp.accept_specialOffers()
        rp.fill_company(company)
        rp.fill_address(address)
        rp.fill_city(city)
        rp.choose_state(state)
        rp.fill_postalCode(postal_code)
        rp.fill_addInfo(add_info)
        rp.fill_homePhone(home_phone)
        rp.fill_mobilePhone(mobile_phone)
        rp.fill_alias(alias)
        rp.click_registerButton()
        rp.check_postalCode_error()
Example #9
0
 def test_create_user_with_existing_data(self):
     home_page = HomePage(self.driver)
     account_page = MyAccountPage(self.driver)
     home_page.go_to_my_account_page()
     account_page.register_user(config.USER_EMAIL, config.USER_PASSWORD)
     error_msg = account_page.validation_msg()
     assert_that(error_msg).is_equal_to(data.ERROR_ALREADY_REGISTERED_ACC)
Example #10
0
    def test_search_by_library_name_returns_library(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)
        loginpage_obj = LoginPage(mozwebqa)
        dashboard_obj = DashboardPage(mozwebqa)
        librarypage_obj = LibraryEditorPage(mozwebqa)
        searchpage_obj = SearchPage(mozwebqa)

        homepage_obj.go_to_home_page()
        homepage_obj.header.click_signin()
        loginpage_obj.login()

        #create a new library with the valid criteria (version not initial)
        dashboard_obj.header.click_home_logo()
        homepage_obj.click_create_lib_btn()
        librarypage_obj.type_library_version('searchable')
        librarypage_obj.click_save()
        searchterm = librarypage_obj.library_name

        librarypage_obj.header.click_home_logo()
        homepage_obj.header.click_search()

        searchpage_obj.search_until_package_exists(searchterm, searchpage_obj.library(searchterm))
        Assert.true(searchpage_obj.library(searchterm).is_displayed, '%s not found before timeout' % searchterm)

        searchpage_obj.delete_test_data()
Example #11
0
 def test_guest_can_see_message_search_gives_no_results(self, browser):
     """when search gives no results there is correct alert message"""
     home_page = HomePage(browser)
     home_page.search_for('glasses')  # enter product not presented in the store
     search = NoResultSearch(browser)
     search.no_result_search_text_should_be_correct()  # no results found message should appear
     search.header_counter_should_show_no_results()  # header counter should show zero
Example #12
0
 def test_guest_can_see_message_search_is_empty(self, browser):
     """when empty search field is submitted there is correct warning message"""
     home_page = HomePage(browser)
     home_page.submit_empty_search_field()  # submit empty search field
     search = EmptySearchResult(browser)
     search.empty_search_text_should_be_correct()  # empty search message should appear
     search.header_counter_should_show_no_results()  # header counter shows zero
    def testShouldCheckLibraryLabel(self, mozwebqa):
        #This test is to check the labels of a library on the dashboard
        #Create page objects
        homepage_obj = HomePage(mozwebqa)
        loginpage_obj = LoginPage(mozwebqa)
        dashboardpage_obj = DashboardPage(mozwebqa)
        libpage_obj = LibraryEditorPage(mozwebqa)

        loginpage_obj.login()

        #Create a library. Then go to dashboard and assert that the label is present.
        homepage_obj.go_to_home_page()
        homepage_obj.click_create_lib_btn()
        library_name = libpage_obj.library_name

        libpage_obj.header.click_dashboard()
        Assert.true(dashboardpage_obj.is_the_current_page)
        Assert.true(dashboardpage_obj.library(library_name).is_displayed, "Library %s not found" % library_name)

        #Click on the edit button of the library.Then create a copy of that library and assert that the label is 'copy'
        dashboardpage_obj.library(library_name).click_edit()
        libpage_obj.click_copy()
        copy_library_name = libpage_obj.library_name

        try:
            Assert.not_equal(library_name, copy_library_name)
        except:
            print 'A copy of the library could not be created'
        libpage_obj.header.click_dashboard()

        Assert.true(dashboardpage_obj.library(copy_library_name).is_displayed, "Library %s not found" % copy_library_name)
        
        dashboardpage_obj.delete_test_data()
Example #14
0
class TestSchoolInfoPage:
    def setup_class(self):
        self.driver = Driver().login()
        self.home_page = HomePage(self.driver)
        self.pay_info_page = PayInfoPage(self.driver)
        self.school_info_page = SchoolInfoPage(self.driver)

    @pytest.mark.run(order=1)
    def test_goto_school_page(self):
        self.home_page.goto_pay_info_page().goto_school_info("5000")

    @pytest.mark.run(order=2)
    def test_input_payment_account(self):
        self.school_info_page.input_payment_account("good school")

    @pytest.mark.run(order=3)
    @pytest.mark.parametrize("school_info, assert_content", [
        (["", "", "", "", "", ""], ["请按照院校要求填写"]),
        (["Boxhill ", "666", "欧洲", "欧洲", "1", ""], ["长度应在 8~11 个字符以内"]),
        (["Boxhill School", "6666666666666666666", "欧洲的收款银行", "欧洲博斯希尔", "12345678", "敷衍附言"], ["SWIFT code"])
    ])
    def test_combo_input_school_info(self, school_info, assert_content):
        self.school_info_page.combo_input_school_info(school_info=school_info)
        for content in assert_content:
            assert content in self.school_info_page._driver.page_source
        sleep(1)

    def test_click_school_info_button(self):
        self.school_info_page.click_school_info_button()
        assert "学生资料" in self.driver.page_source

    def teardown_class(self):
        self.school_info_page._driver.quit()
Example #15
0
 def test_login_or(self, case):
     data = eval(case['data'])
     phone = data['phone']
     pwd = data['pwd']
     expect = data['expect']
     loginpage = LoginPage(self.driver)
     loginpage.login(username=phone, pwd=pwd)
     homepage = HomePage(self.driver)
     if case['error'] == '1':
         actual = loginpage.login_userorpwd_error()
         try:
             self.assertEqual(actual, expect)
         except AssertionError as e:
             raise e
     elif case['error'] == '2':
         actual = loginpage.login_userandpwd_error()
         try:
             self.assertEqual(actual, expect)
         except AssertionError as e:
             raise e
     elif case['error'] == '3':
         actual = homepage.login_success()
         try:
             self.assertEqual(actual, expect)
         except AssertionError as e:
             raise e
Example #16
0
    def test_user_can_register_property_in_approved_state_with_mailing_in_non_approved_state(
            self):
        phone = registered_phone
        otp = default_otp
        first_name = default_first_name
        street = Faker().street_address()

        HomePage().submit_phone_number(phone)
        HomePage().submit_otp_code(otp)
        DashboardPage().check_user_greeting_text_is_correct(first_name)
        DashboardPage().click_add_property()
        DashboardPage().fill_property_address(zip='44181', street=street)
        DashboardPage().check_city_state_in_property_address_is_correct(
            city='Cleveland', state='OH')
        DashboardPage().fill_owners_info(owners_name=first_name)
        DashboardPage().fill_mailing_address(zip='10001', street=street)
        DashboardPage().check_city_state_in_mailing_address_is_correct(
            city='New York', state='NY')
        DashboardPage().select_pricing_plan('Fyve')
        DashboardPage().mark_checkbox_add_property()
        DashboardPage().click_complete_button()
        DashboardPage().check_thank_you_text_is_displayed(
            first_name=first_name)
        DashboardPage().check_successfully_added_property_text_is_displayed()
        DashboardPage().check_property_card_text_is_displayed(
            'Cleveland, OH 44181, United States')
        HomePage().click_continue()
        DashboardPage().check_user_greeting_text_is_correct(
            first_name=first_name)
Example #17
0
    def test_login_wrong_password(self):
        # Scenariusz: Logowanie zarejestrowanego użytkownika z użyciem niepoprawnego hasła

        # 1 & 2. Kliknij "MY ACCOUNT"
        main_page = HomePage(self.driver)
        main_page.click_my_account_btn()

        # 3. Wprowadź poprawny adres email
        login_page = LoginPage(self.driver)
        login_page.submit_email('*****@*****.**')

        # 4. Wprowadź niepoprawne hasło
        login_page.submit_password('zlehaslo123')

        # 5. Kliknij 'LOGIN'
        login_page.click_login_btn()

        # Oczekiwany rezultat: Wyświetla się komunikat "Invalid Email or Password"

        error_notices = self.driver.find_elements_by_xpath(
            '//div[@class="alert alert-danger"]')
        visible_error_notices = []
        for error in error_notices:
            if error.is_displayed():
                visible_error_notices.append(error)
        self.assertEqual(len(visible_error_notices), 1)
        self.assertEqual(visible_error_notices[0].text,
                         "Invalid Email or Password")
 def software_upload(self, path):
     home = HomePage(self.driver)
     home.goto_links('基本设置', self.diskbtn)
     sleep(2)
     self.input_text(self.uploadbtn, path)
     logger.info(u"点击辅助软件上传按钮")
     sleep(1)
Example #19
0
    def test_login_correct_credents(self):

        # Scenariusz: Logowanie zarejestrowanego użytkownika poprawnymi danymi do logowania

        # 1. Kliknij "MY ACCOUNT"
        # ta metoda klika My Account i Login za jednym razem
        home_page = HomePage(self.driver)
        home_page.click_my_account_btn()
        '''
        # 2. Kliknij "Login"
        main_page.click_login()
        time.sleep(3)
        '''
        # 3. Wprowadź poprawny adres email
        login_page = LoginPage(self.driver)
        login_page.submit_email('*****@*****.**')

        # 4. Wprowadź poprawne hasło
        login_page.submit_password('demouser')

        # 5. Kliknij 'LOGIN'
        login_page.click_login_btn()

        #Oczekiwany rezulat: Użytkownik jest poprawnie zalogowany. Następuje automatyczne przeniesienie na stronę https://www.phptravels.net/account/

        account_page = AccountPage(self.driver)
class SearchProductTest(BaseSetup, unittest.TestCase):
    def setUp(self):
        super(SearchProductTest, self).setUp()
        self.home_page = HomePage(self.driver)
        self.product_page = ProductPage(self.driver)
        self.shopping_cart_page = ShoppingCartPage(self.driver)
        self.dresses_page = DressesPage(self.driver)
        self.data = data_provider.test_data_provider()

    def test_check_if_product_was_added_th_the_cart(self):
        self.home_page.search_product(self.data.get("search_item"))
        self.home_page.search_button()
        self.product_page.select_product()
        self.product_page.continue_shopping_button()
        self.home_page.cart_button()
        self.shopping_cart_page.cart_products("blouseItemInTheCartByLinkText")
        self.assertEqual(
            self.shopping_cart_page.cart_products(
                "blouseItemInTheCartByLinkText")[-1].text, "Blouse")

    def test_add_all_summer_dresses_to_the_cart(self):
        self.home_page.dresses_button_click_on()
        self.dresses_page.summer_dresses_image_click_on()
        self.dresses_page.add_to_the_cart_all_products_in_the_category()
        self.home_page.cart_button()
        self.assertEqual(
            self.shopping_cart_page.cart_products(
                "pinnedSummerDressByLinkText")[0].text, "Printed Summer Dress")
        self.assertEqual(
            self.shopping_cart_page.cart_products(
                "pinnedSummerDressByLinkText")[1].text, "Printed Summer Dress")

    def tearDown(self):
        super(SearchProductTest, self).tearDown()
    def testShouldCheckAddonLabel(self, mozwebqa):
        #This test is to check the labels of an add-on on the dashboard
        #Create page objects
        homepage_obj = HomePage(mozwebqa)
        loginpage_obj = LoginPage(mozwebqa)
        dashboardpage_obj = DashboardPage(mozwebqa)
        addonpage_obj = AddonEditorPage(mozwebqa)

        loginpage_obj.login()

        #Create an addon. Then go to dashboard and assert that the label is 'initial'.
        homepage_obj.go_to_home_page()
        homepage_obj.click_create_addon_btn()
        addon_name = addonpage_obj.addon_name

        homepage_obj.header.click_dashboard()
        Assert.true(dashboardpage_obj.is_the_current_page)
        Assert.true(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s not found" % addon_name)

        #Click on the edit button of the addon.Then create a copy of that addon and assert that the label is 'copy'
        dashboardpage_obj.addon(addon_name).click_edit()
        addonpage_obj.click_copy()
        copy_addon_name = addonpage_obj.addon_name

        try:
            Assert.not_equal(addon_name, copy_addon_name)
        except:
            print 'A copy of the addon could not be created'
        homepage_obj.header.click_dashboard()
        Assert.true(dashboardpage_obj.addon(copy_addon_name).is_displayed, "Addon %s not found" % copy_addon_name)

        dashboardpage_obj.delete_test_data()
Example #22
0
 def __init__(self):
     self.driver = webdriver.Chrome()
     # self.driver = webdriver.Remote("http://192.168.1.3:4444/wd/hub",
     #                                desired_capabilities={'browserName': 'chrome'})
     self.home_page = HomePage(self.driver)
     self.product_page = ProductPage(self.driver)
     self.checkout_page = CheckoutPage(self.driver)
Example #23
0
 def test_param_create_user_validation(self, email, password, error):
     home_page = HomePage(self.driver)
     account_page = MyAccountPage(self.driver)
     home_page.go_to_my_account_page()
     account_page.register_user(email, password)
     error_msg = account_page.validation_msg()
     assert_that(error_msg).is_equal_to(error)
 def setUp(self):
     super(SearchProductTest, self).setUp()
     self.home_page = HomePage(self.driver)
     self.product_page = ProductPage(self.driver)
     self.shopping_cart_page = ShoppingCartPage(self.driver)
     self.dresses_page = DressesPage(self.driver)
     self.data = data_provider.test_data_provider()
 def test_intrsource2(self):
     '''互动视频源的测试'''
     try:
         self.relogin2()
         logger.info("互动视频源的测试")
         home = HomePage(self.driver)
         home.swich_to_system_label(self.Sourcebtn, "互动视频源")
         sleep(3)
         tag_num = self.get_sources_num()
         print(tag_num)
         for i in range(1, tag_num + 1):
             logger.info("~~~~~~设置新的视频源~~~~~~~")
             if i == 1:
                 pass
             else:
                 home.swich_to_system_label(self.Sourcebtn, "互动视频源")
             sourcename = self.choose_source(i)
             home = HomePage(self.driver)
             home.click_system_setup_blck()
             sleep(1)
             self.join_metting(alist[0], alist[1])
             sleep(2)
             self.set_viewport_size(self.driver, 1920, 1080)
             listen = IterListening(self.driver)
             self.assertEqual(self.gettext(listen.lissource), sourcename)
             self.stop_meeting()
     except Exception as msg:
         logger.error(u"异常原因:%s" % msg)
         self.driver.get_screenshot_as_file(
             os.path.join(readconfig.screen_path, 'test_intrsource2.png'))
         raise Exception("false")
     finally:
         self.stop_two_meeting()
Example #26
0
 def test_create_user_with_invalid_email(self):
     home_page = HomePage(self.driver)
     account_page = MyAccountPage(self.driver)
     home_page.go_to_my_account_page()
     account_page.register_user("[email protected]", config.USER_PASSWORD)
     error_msg = account_page.validation_msg()
     assert_that(error_msg).is_equal_to(data.ERROR_INVALID_EMAIL_REG)
Example #27
0
 def test_select_best_tab(self):
     home_page = HomePage(self.driver)
     if home_page.do_click(HomePageLocators.BEST_SELLER_TAB):
         assert home_page.is_element_visible(
             HomePageLocators.BEST_SELLER_TAB_ACTIVE)
     else:
         assert False
    def test_switch_to_eng_box_header(self):
        home_page = HomePage(self.driver)
        home_page.click_regional_settings()

        regional_settings = RegionalSettingsBox(self.driver)
        regional_settings.click_switch_to_eng()
        assert regional_settings.get_box_header() == DataRegionalSettings.HEADER
Example #29
0
    def test_send_tweet(self, login_credentials, tweet):
        # Test sending single tweet and deleting it after

        login_page = LoginPage(self.driver)
        home_page = HomePage(self.driver)
        profile_page = ProfilePage(self.driver)
        logout_page = LogoutPage(self.driver)

        login_page.navigate_to_url()
        login_page.fill_in_email_and_password(login_credentials)
        login_page.click_log_in_button()
        login_page.verify_identity_if_required(login_credentials)

        home_page.close_cookies_use_info_bar()
        home_page.send_tweet_with_emoji(tweet)
        home_page.click_profile_menu_item()

        self.assertTrue(profile_page.check_if_tweet_is_visible(tweet),
                        "Tweet is not visible on profile page.")
        profile_page.delete_tweet()
        profile_page.confirm_delete_tweet()
        self.assertTrue(profile_page.check_if_tweet_successfully_deleted(),
                        "Tweet was not deleted successfully.")

        home_page.log_out()

        logout_page.confirm_log_out()
Example #30
0
 def test_select_popular_tab(self):
     home_page = HomePage(self.driver)
     if home_page.do_click(HomePageLocators.POPULAR_TAB):
         assert home_page.is_element_visible(
             HomePageLocators.POPULAR_TAB_ACTIVE)
     else:
         assert False
    def testShouldCheckLibDeactivateAndActivate(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)
        loginpage_obj = LoginPage(mozwebqa)
        dashboardpage_obj = DashboardPage(mozwebqa)
        librarypage_obj = LibraryEditorPage(mozwebqa)

        homepage_obj.go_to_home_page()
        homepage_obj.header.click_signin()
        loginpage_obj.login()
        Assert.true(dashboardpage_obj.is_the_current_page)

        # go back to homepage, create a new library to work with
        dashboardpage_obj.header.click_home_logo()
        homepage_obj.click_create_lib_btn()
        library_name = librarypage_obj.library_name
        librarypage_obj.header.click_dashboard()

        #Click on the private button to make it private and then check that the library is not in the list anymore
        dashboardpage_obj.library(library_name).click_private()
        Assert.false(dashboardpage_obj.library(library_name).is_displayed, "Library %s found" % library_name)

        #Go to the private libraries page and check that the library that you just made private is present there.
        #Click on public to make it public and check on the dashboard that the library is present there.
        dashboardpage_obj.click_private_libraries_link()
        Assert.true(dashboardpage_obj.library(library_name).is_displayed, "Library %s not found" % library_name)

        # Switch it back to public - it should disappaer
        dashboardpage_obj.library(library_name).click_public()
        Assert.false(dashboardpage_obj.library(library_name).is_displayed, "Library %s found" % library_name)

        # Go to main dashboard, should be present
        dashboardpage_obj.header.click_dashboard()
        Assert.true(dashboardpage_obj.library(library_name).is_displayed, "Library %s not found" % library_name)

        dashboardpage_obj.delete_test_data()
    def testShouldCheckAddonDeactivateAndActivate(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)
        loginpage_obj = LoginPage(mozwebqa)
        dashboardpage_obj = DashboardPage(mozwebqa)
        addonpage_obj = AddonEditorPage(mozwebqa)

        homepage_obj.go_to_home_page()
        homepage_obj.header.click_signin()
        loginpage_obj.login()
        Assert.true(dashboardpage_obj.is_the_current_page)

        # Go back to homepage and create a new addon to work with.
        dashboardpage_obj.header.click_home_logo()
        homepage_obj.click_create_addon_btn()
        addon_name = addonpage_obj.addon_name
        addonpage_obj.header.click_dashboard()

        #Click on the private button to make it private and then check that the addon is not in the list anymore
        dashboardpage_obj.addon(addon_name).click_private()
        Assert.false(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s found" % addon_name)

        #Go to the private addons page and check that the addon that you just made private is present there.
        #Click on public to make it public and check on the dashboard that the addon is present there.
        dashboardpage_obj.click_private_addons_link()
        Assert.true(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s not found" % addon_name)

        # Switch it back to public now, addon should disappear
        dashboardpage_obj.addon(addon_name).click_public()
        Assert.false(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s found" % addon_name)

        # Should be on main dashboard page
        dashboardpage_obj.header.click_dashboard()
        Assert.true(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s not found" % addon_name)

        dashboardpage_obj.delete_test_data()
Example #33
0
 def basic_recording(self):
     home = HomePage(self.driver)
     home.click_record()
     sleep(1)
     self.start_recording("基本录制", "陈老师")
     sleep(10)
     self.stop_recording()
Example #34
0
 def test_incorrect_email(self):
     """Test rejestracji nowego użytkownika - błędny e-mail"""
     # Tworzę instancję klasy HomePage, dzięki czemu zyskuję możliwość
     # korzystania z metod w niej zawartych
     hp = HomePage(self.driver)
     hp.click_zaloguj_btn()
     lp = LoginPage(self.driver)
     lp.click_register_btn()
     rp = RegisterPage(self.driver)
     # Wpisz imię
     rp.fill_name("Przemek")
     # Wpisz nazwisko
     rp.fill_surname("Nowak")
     # Wybierz płeć
     rp.choose_gender("M")
     # Wybierz kod kraju
     rp.choose_country_code("+48")
     # Wpisz numer telefonu
     rp.fill_telephone('321321321')
     # Wpisz niepoprawny e-mail
     rp.fill_email('dddd.pl')
     # Wpisz hasło
     rp.fill_password('Qwessdry123@')
     # Wybierz narodowość
     rp.choose_nationality("Polska")
     # Zaznacz "Akceptuję Informację o polityce prywatności"
     rp.accept_privacy_policy()
     # Kliknij ZAREJESTRUJ [ NIE STOSOWAĆ DLA PRZYPADKU POZYTYWNEGO !!!!]
     # Sprawdź poprawność wyświetlanych błędów
     rp.verify_visible_errors(1, ["Nieprawidłowy adres e-mail"])
     time.sleep(2)
    def test_incorrect_password(self):
        home_page = HomePage(self.driver)
        home_page.click_sign_in_btn()
        time.sleep(2)

        login_page = LoginPage(self.driver)
        login_page.click_registration_btn()

        register_page = RegisterPage(self.driver)
        register_page.fill_name_field(td.valid_name)
        register_page.fill_surname_field(td.valid_surname)
        register_page.choose_gender(td.gender)
        register_page.fill_phone_number_country_code_field(td.valid_country)
        register_page.fill_phone_field(td.valid_phone)
        register_page.fill_email_field(td.valid_email)
        register_page.fill_password_field(td.invalid_password)
        register_page.fill_country_field(td.valid_country)
        register_page.select_privacy_policy()
        register_page.click_register_btn()

        error_notices = self.driver.find_elements(*RegisterPageLocators.ERROR_NOTICES)
        visible_error_notices = []
        for error in error_notices:
            if error.is_displayed():
                visible_error_notices.append(error)
        self.assertEqual(len(visible_error_notices),1)
        self.assertEqual(visible_error_notices[0].get_attribute('innerText'),u"Wpisz hasło")


        time.sleep(5)
    def test_create_addon(self, mozwebqa):
        #This test is to check the labels of an add-on on the dashboard
        #Create page objects
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        dashboard_obj = loginpage_obj.login()

        #Create an addon. Then go to dashboard and assert that the label is 'initial'.
        homepage_obj = dashboard_obj.go_to_home_page()
        addonpage_obj = homepage_obj.click_create_addon_btn()
        addon_name = addonpage_obj.package_name

        dashboard_obj = addonpage_obj.header.click_dashboard()
        Assert.true(dashboard_obj.is_the_current_page)
        Assert.true(dashboard_obj.addon(addon_name).is_displayed, "Addon %s not found" % addon_name)

        #Click on the edit button of the addon.Then create a copy of that addon and assert that the label is 'copy'
        addonpage_obj = dashboard_obj.addon(addon_name).click_edit()
        addonpage_obj.click_copy()
        copy_addon_name = addonpage_obj.package_name

        Assert.contains(addon_name, copy_addon_name)
        Assert.contains('copy', copy_addon_name)

        dashboard_obj = homepage_obj.header.click_dashboard()
        Assert.true(dashboard_obj.addon(copy_addon_name).is_displayed, "Addon %s not found" % copy_addon_name)

        dashboard_obj.delete_test_data()
 def switch_Chinese(self):
     home = HomePage(self.driver)
     home.swich_to_basic_label(self.languagebtn2, "语言切换")
     sleep(2)
     self.choose_Chinese()
     sleep(1)
     self.click_surebtn()
Example #38
0
    def test_doc_link_redirects(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        link = homepage_obj.header.documentation_link
        homepage_obj.selenium.get(link)

        Assert.contains("https://addons.mozilla.org/en-US/developers/docs/sdk/latest/", homepage_obj.selenium.current_url)
Example #39
0
    def test_addons_libraries_listed_on_home(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()

        #3 of each should be present
        Assert.equal(homepage_obj.browse_addons_count, 3)
        Assert.equal(homepage_obj.browse_libraries_count, 3)
Example #40
0
 def test_search_main_page(self):
     hp = HomePage(self.driver)
     hp.go()
     hp.search_directly("test")
     rp = ResultsPage(self.driver)
     rp.wait(2)
     count = rp.get_results_count()
     assert count > 0
Example #41
0
 def test_neg_search_main_page(self):
     hp = HomePage(self.driver)
     hp.go()
     hp.search_directly("negative testing :)")
     rp = ResultsPage(self.driver)
     rp.wait(2)
     count = rp.get_results_count()
     assert count == 0
    def test_view_source_addon(self, mozwebqa):
        #This test is to check viewing the source of an addon while not logged in
        homepage_obj = HomePage(mozwebqa)

        #Go to search page and click view source on the first addon listed
        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()
        addoneditor_obj = searchpage_obj.addon(1).click()  # TODO:  wtf

        Assert.true(addoneditor_obj.tab(1).selected)
        Assert.not_none(addoneditor_obj.tab(1).content)
    def test_view_source_library(self, mozwebqa):
        #This test is to check viewing the source of a library while not logged in
        homepage_obj = HomePage(mozwebqa)

        #Go to search page and click view source on the first library listed
        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()
        libraryeditor_obj = searchpage_obj.library(1).click()

        Assert.true(libraryeditor_obj.tab(1).selected)
        Assert.not_none(libraryeditor_obj.tab(1).content)
    def test_login(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        Assert.true(loginpage_obj.is_the_current_page)
        dashboard_obj = loginpage_obj.login()

        Assert.true(dashboard_obj.is_the_current_page)
        Assert.true(dashboard_obj.header.logged_in)
        Assert.equal(dashboard_obj.logged_in_username, mozwebqa.credentials['default']['name'])
    def test_used_packages_slider_filters_results(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()
        searchpage_obj.click_filter_libraries_link()

        initial_library_count = searchpage_obj.library_count_label
        searchpage_obj.move_used_packages_slider(10)

        Assert.true(initial_library_count > searchpage_obj.library_count_label)
    def test_activity_slider_filters_results(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()

        initial_addon_count = searchpage_obj.addons_count_label
        initial_library_count = searchpage_obj.library_count_label
        searchpage_obj.move_activity_slider(1)

        Assert.true(initial_addon_count > searchpage_obj.addons_count_label)
        Assert.true(initial_library_count > searchpage_obj.library_count_label)
    def test_clicking_library_author_link_displays_author_profile(self, mozwebqa):

        # go to library result and click author link
        homepage_obj = HomePage(mozwebqa)
        userpage_obj = UserPage(mozwebqa)

        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()

        library_name = searchpage_obj.library(1).name
        author_name = searchpage_obj.library(library_name).author_name
        searchpage_obj.library(library_name).click_author()
        Assert.equal(userpage_obj.author_name.lower(), author_name)
Example #48
0
    def test_clicking_addon_author_link_displays_author_profile(self, mozwebqa):
        # go to addon result and click author link

        homepage_obj = HomePage(mozwebqa)
        userpage_obj = UserPage(mozwebqa)
        searchpage_obj = SearchPage(mozwebqa)

        homepage_obj.go_to_home_page()
        homepage_obj.header.click_search()

        addon_name = searchpage_obj.addon(1).name
        author_name = searchpage_obj.addon(addon_name).author_name
        searchpage_obj.addon(addon_name).click_author()
        Assert.equal(userpage_obj.author_name.lower(), author_name)
    def test_empty_search_returns_all_results(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()

        # search with a zero length string should still return results
        # default display is for 5 addons/5 libraries
        # same as filtering by 'Combined'

        searchpage_obj.clear_search()
        searchpage_obj.click_search()

        Assert.equal(searchpage_obj.addons_element_count(), 5)
        Assert.equal(searchpage_obj.library_element_count(), 5)
    def test_clicking_library_source_displays_editor(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        editorpage_obj = LibraryEditorPage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        dashboard_obj = loginpage_obj.login()
        searchpage_obj = dashboard_obj.header.click_search()

        library_name = searchpage_obj.library(1).name
        searchpage_obj.library(library_name).click()
        Assert.equal(editorpage_obj.package_name, library_name)

        searchpage_obj.delete_test_data()
    def test_library_delete(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        dashboard_obj = loginpage_obj.login()

        homepage_obj = dashboard_obj.go_to_home_page()
        libpage_obj = homepage_obj.click_create_lib_btn()
        library_name = libpage_obj.library_name

        dashboard_obj = homepage_obj.header.click_dashboard()
        dashboard_obj.library(library_name).click_delete()
        dashboard_obj.library(library_name).confirm_delete()
        Assert.false(dashboard_obj.library(library_name).is_displayed, "Library %s found" % library_name)
    def test_clicking_addon_source_displays_editor(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        editorpage_obj = AddonEditorPage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        dashboard_obj = loginpage_obj.login()
        searchpage_obj = dashboard_obj.header.click_search()

        addon_name = searchpage_obj.addon(1).name
        searchpage_obj.addon(addon_name).click()
        Assert.equal(editorpage_obj.addon_name, addon_name)

        searchpage_obj.delete_test_data()
    def test_search_partial_library_name_returns_library(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()

        # get library name, split string in half and search with it
        # results should be returned including the original addon

        top_library_name = searchpage_obj.library(1).name
        search_string = top_library_name[:4]
        searchpage_obj.type_search_term(search_string)
        searchpage_obj.click_search()

        Assert.true(searchpage_obj.library_element_count() >= 1)
        Assert.true(searchpage_obj.library(top_library_name).is_displayed, 'Library \'%s\' not found' % top_library_name)
    def test_addon_count(self, mozwebqa):
        #This test is to assert that the count of the addons on dashboard is equal to the number of addons present on the page.
        #Create page objects
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        dashboard_obj = loginpage_obj.login()
        Assert.true(dashboard_obj.is_the_current_page)

        #Get the total count of the number of add-ons that are displayed on the dashboard.
        addon_count = dashboard_obj.addons_element_count()

        #Get the number of addons that are displayed on the left hand side of the page.(Something like your add-ons(20))
        counter = dashboard_obj.addons_count_label

        #Assert that the total addons on the page matches the counter on the left hand side.
        Assert.equal(str(addon_count), str(counter))
    def test_addon_delete(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        dashboard_obj = loginpage_obj.login()

        homepage_obj = dashboard_obj.go_to_home_page()
        addonpage_obj = homepage_obj.click_create_addon_btn()

        #Get the name of the addon on the editor page.
        addon_name = addonpage_obj.addon_name

        #Go the the dashboard and delete the addon that you just created. Then check that the addon at the top of the list is not the same as the one you just deleted.
        dashboard_obj = homepage_obj.header.click_dashboard()
        dashboard_obj.addon(addon_name).click_delete()
        dashboard_obj.addon(addon_name).confirm_delete()
        Assert.false(dashboard_obj.addon(addon_name).is_displayed, "Addon %s found" % addon_name)
Example #56
0
    def test_search_partial_addon_name_returns_addon(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()

        # get addon name, split string in half and search with it
        # results should be returned including the original addon

        top_addon_name = searchpage_obj.addon(1).name
        search_string = top_addon_name[:4]
        searchpage_obj.type_search_term(search_string)
        searchpage_obj.click_search()

        if searchpage_obj.is_see_all_matching_addons_visible:
            searchpage_obj.click_see_all_matching_addons()

        Assert.greater_equal(searchpage_obj.addons_element_count, 1)
        Assert.true(searchpage_obj.addon(top_addon_name).is_displayed, 'Addon \'%s\' not found' % top_addon_name)
    def test_search_library_filter_results_match(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()

        # search with a generic but safe string 'test'
        # filter by add-on results and check number

        searchpage_obj.type_search_term('test')
        searchpage_obj.click_search()

        searchpage_obj.click_filter_libraries_link()

        # 20 items maximum per page
        label_count = min(searchpage_obj.library_count_label, 20)
        element_count = searchpage_obj.library_element_count()

        Assert.equal(label_count, element_count, 'Number of items displayed should match 20 or total number of results, whichever is smallest. This is due to pagination.')
    def test_rename_addon(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        dashboard_obj = loginpage_obj.login()

        new_addon_name = 'renamed addon ' + str(randint(1, 1000))

        #Create an addon.
        homepage_obj = dashboard_obj.go_to_home_page()
        addonpage_obj = homepage_obj.click_create_addon_btn()

        #Click properties and change its name
        addonpage_obj.click_properties()
        addonpage_obj.type_package_name(new_addon_name)
        addonpage_obj.click_properties_save()
        Assert.equal(addonpage_obj.package_name, new_addon_name)

        addonpage_obj.delete_test_data()
Example #59
0
    def test_default_search_order_is_by_activity(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        searchpage_obj = homepage_obj.header.click_search()

        searchpage_obj.type_search_term('addon')
        searchpage_obj.click_search()

        searchpage_obj.click_see_all_matching_addons()

        Assert.equal('Activity', searchpage_obj.current_sort_method)

        addons_activity_property_list = []
        while searchpage_obj.paginator.is_next_visible:
            for lookup in range(1, searchpage_obj.addons_element_count + 1):
                addons_activity_property_list.append(
                        searchpage_obj.addon(lookup).activity_rating)

            Assert.is_sorted_descending(addons_activity_property_list, 'The addons are not sorted by Activity')
            searchpage_obj.paginator.next()
    def test_search_by_addon_name_returns_addon(self, mozwebqa):
        homepage_obj = HomePage(mozwebqa)

        homepage_obj.go_to_home_page()
        loginpage_obj = homepage_obj.header.click_signin()
        dashboard_obj = loginpage_obj.login()

        #create a new addon with the valid criteria (version not initial)
        homepage_obj = dashboard_obj.header.click_home_logo()
        addonpage_obj = homepage_obj.click_create_addon_btn()
        addonpage_obj.type_package_version('searchable')
        addonpage_obj.click_save()
        searchterm = addonpage_obj.package_name

        homepage_obj = addonpage_obj.header.click_home_logo()
        searchpage_obj = homepage_obj.header.click_search()

        searchpage_obj.search_until_package_exists(searchterm, searchpage_obj.addon(searchterm))
        Assert.true(searchpage_obj.addon(searchterm).is_displayed, '%s not found before timeout' % searchterm)

        searchpage_obj.delete_test_data()