예제 #1
0
 def __init__(self, headless, url):
     setup("INFO")
     logger.setLevel("INFO")
     options: Options = Options()
     if headless:
         options.add_argument("--headless")
     self.url = url
     try:
         self.driver = webdriver.Chrome(ChromeDriverManager().install(),
                                        options=options)
     except ValueError:
         self.driver = webdriver.Chrome(r"C:\chromedriver.exe",
                                        options=options)
     self.driver.implicitly_wait(10)
     self.login = LoginPage(self)
     self.my_addresses = MyAddressesPage(self)
     self.contact_us = ContactUsPage(self)
     self.personal_info = MyPersonalInfoPage(self)
     self.my_orders = MyOrdersPage(self)
     self.my_credit_slips = MyCreditSlipsPage(self)
     self.women_category_page = WomenCategoryPage(self)
     self.order_page = OrderPage(self)
     self.registration = RegistrationPage(self)
     self.filtering_women = FilteringWomenPage(self)
     self.shopping_cart = ShoppingCartPage(self)
     self.search = SearchGoods(self)
예제 #2
0
    def test_change_lead_status_name(self, user, lead, lead_statuses):
        login_page = LoginPage(self.driver)
        main_page = login_page.log_in(user['email'], user['password'])
        leads_page = main_page.navigation_bar.switch_to_leads()
        new_lead_page = leads_page.add_new_lead()
        new_lead_page.type_first_name(lead['first_name'])
        new_lead_page.type_last_name(lead['last_name'])
        lead_page = new_lead_page.save_new_lead()
        Assert.equal(lead_page.lead_status, lead_statuses['prev_status'])
        profile_page = lead_page.navigation_bar.switch_to_settings()
        leads_sources_page = profile_page.settings_navigation_bar.customize_leads(
        )
        leads_statuses_page = leads_sources_page.lead_settings_bar.switch_to_lead_statuses(
        )
        leads_statuses_page.edit_status_name(lead_statuses['prev_status'],
                                             lead_statuses['new_status'])
        leads_statuses_page.navigation_bar.switch_to_leads()
        lead_page = leads_page.select_lead(lead)
        Assert.equal(lead_page.lead_status, lead_statuses['new_status'])

        # clean up
        lead_page.delete_lead()
        lead_page.navigation_bar.switch_to_settings()
        leads_sources_page = profile_page.settings_navigation_bar.customize_leads(
        )
        leads_statuses_page = leads_sources_page.lead_settings_bar.switch_to_lead_statuses(
        )
        leads_statuses_page.edit_status_name(lead_statuses['new_status'],
                                             lead_statuses['prev_status'])

        leads_statuses_page.navigation_bar.log_out()
예제 #3
0
 def logout(self):
     options_button = self.selenium.find_element(*self._user_options_button_locator)
     options = self.selenium.find_element(*self._user_options_locator)
     logout_link = options.find_element(*self._logout_link_locator)
     ActionChains(self.selenium).move_to_element(options_button).click().move_to_element(logout_link).click().perform()
     from pages.login import LoginPage
     return LoginPage(self.testsetup)
예제 #4
0
 def test__orcid_login(self, driver):
     """Check that you arrive on the orcid login page.
     """
     login_page = LoginPage(driver)
     login_page.goto()
     login_page.orcid_login_button.click()
     OrcidLoginPage(driver, verify=True)
예제 #5
0
def init_web():
    driver = Chrome()
    login_page = LoginPage(driver)
    driver.maximize_window()
    yield driver, login_page
    time.sleep(2)
    driver.quit()
예제 #6
0
 def __init__(self, driver: WebDriver):
     """ Close NCR E2E Actions """
     super().__init__(driver)
     self.login_page = LoginPage(self._driver)
     self.home_page = HomePage(self._driver)
     self.close_requests = CloseRequests(self._driver)
     self.create_requests = CreateRequests(self.close_requests._driver)
예제 #7
0
    def setUp(self) -> None:
        # browser session

        if os.environ.get('JOB_NAME'):
            chrome_options = webdriver.ChromeOptions()
            chrome_options.add_argument("--headless")
            chrome_options.add_argument("--disable-gpu")
            browser = webdriver.Chrome(executable_path=CHROME_PATH,
                                       options=chrome_options)
        else:
            browser = webdriver.Chrome(executable_path=CHROME_PATH)

        self.browser = browser
        self.wait = WebDriverWait(self.browser, DEFAULT_WAIT)
        self.long_wait = WebDriverWait(self.browser, LONG_WAIT)
        self.login_page = LoginPage(browser)

        # optional design choice:
        self.user_menu = UserMenu(self.browser)
        self.pim_page = EmployeeInformationPage(self.browser)
        self.add_emp_page = AddEmployeePage(self.browser)

        # browser.get(f'http://{DOMAIN}')
        # OR
        self.login_page.go_to_page()
예제 #8
0
class TestBid(object):
    """投标测试用例"""
    @pytest.mark.parametrize('case', bid_data)
    def test_bid(self, case, init_web):
        driver = init_web
        login_page = LoginPage(driver)
        home_page = HomePage(driver)
        bid_page = BidPage(driver)
        # 登录
        login_page.login(config.get('data', 'phone'),
                         config.get('data', 'password'))
        # 断言
        try:
            # 确认首页已经打开
            home_page.opened()
            # 首页,点击投标,进入投标详情页
            home_page.get_bid_button().click()
            # 投标详情页,定位可用余额输入框
            element_available_balance = bid_page.get_available_balance()
            element_available_balance.send_keys(case['amount'])
            # 投标详情页,定位投标按钮
            element_bid_button = bid_page.get_bid_button()
            # 断言
            assert case['expected'] == getattr(element_bid_button, 'text')
            print('用例执行成功')
        except Exception as e:
            # 截图
            home_page.screen_shot()
            print('用例执行失败')
            raise e
예제 #9
0
def test_logged_register(browser):
    home_page = HomePage(browser)
    result_page = SearchResultPage(browser)
    login_page = LoginPage(browser)

    # Given the home page is displayed
    home_page.load()

    home_page.go_to_login_page()

    WebDriverWait(browser, 30).until(
        EC.visibility_of_element_located(login_page.EMAIL_INPUT))

    login_page.login('*****@*****.**', '*****@*****.**')

    WebDriverWait(browser, 30).until(
        EC.visibility_of_element_located(home_page.SIGNOUT_MESSAGE))

    home_page.search('Erika Running Short')

    WebDriverWait(browser,
                  30).until(EC.visibility_of_element_located(result_page.SIZE))

    result_page.add_to_cart()

    WebDriverWait(browser, 30).until(
        EC.visibility_of_element_located(result_page.PAGEMESSAGE))

    assert "You added Erika Running Short to your shopping cart." in result_page.success_message(
    )

    home_page.load()

    home_page.logout()
예제 #10
0
class TestLogin(object):
    """登录测试用例"""
    # @pytest.mark.usefixtures('set_up_refresh')
    @pytest.mark.parametrize('case', login_data)
    def test_login(self, case, init_web):
        driver = init_web
        login_page = LoginPage(driver)
        home_page = HomePage(driver)
        # 每次登录前刷新页面,清空输入框内容
        driver.refresh()
        login_page.login(case['username'], case['password'])
        # 断言
        try:
            # 获取实际结果
            element = None
            if 'success' in case['tags']:
                element = home_page.get_my_account_element()
            elif 'error' in case['tags']:
                element = login_page.get_error_element()
            elif 'alert' in case['tags']:
                element = login_page.get_invalid_element()
            assert case['expected'] == getattr(element, 'text')
            print('用例执行成功')
        except Exception as e:
            # 截图
            home_page.screen_shot()
            print('用例执行失败')
            raise e
예제 #11
0
def test_login_admin(base_url, selenium, deployment_config):
    login_pg = LoginPage(base_url, selenium)
    login_pg.open()
    dashboard_pg = login_pg.login(
        deployment_config.credentials['fusor']['username'],
        deployment_config.credentials['fusor']['password'])
    assert dashboard_pg.is_the_current_page
예제 #12
0
def test_login(mozwebqa, variables):
    """Users can log in"""
    login_page = LoginPage(mozwebqa)
    login_page.open()
    messages_page = login_page.login(variables['username'],
                                     variables['password'])
    assert messages_page.notification == 'You were logged in'
예제 #13
0
def test_register_for_loan(browser):

    username = "******"
    password = "******"
    loan_amount = "100"
    dp_amount = "50"
    message = "Congratulations, your loan has been approved."

    login_page = LoginPage(browser)
    request_loan_page = RequestLoanPage(browser)

    # given logged in user want to request a loan
    login_page.load()
    login_page.username(username)
    login_page.password(password)
    login_page.login_button()
    request_loan_page.register_for_loan_button()


    # when the user complete request loan form with acceptable values
    request_loan_page.loan_amount(loan_amount)
    request_loan_page.down_payment(dp_amount)

    request_loan_page.apply_button()

    # then te user is successfully registered

    actual_message = request_loan_page.success_message()
    print(actual_message)

    assert request_loan_page.success_message() == message

    time.sleep(5)
예제 #14
0
    def test_empty_password_verification(self):
        home_pg = Utilities.open_homepage(self.selenium)
        login_pg = LoginPage(self.selenium)
        home_pg.go_to_login_page()
        login_pg.login_successful(var.test_username, "")

        assert login_pg.password_required_message(
        ) == "The Password: field is required.", "Message do not match"
예제 #15
0
    def test_successful_login_verification(self):
        home_pg = Utilities.open_homepage(self.selenium)
        login_pg = LoginPage(self.selenium)
        home_pg.go_to_login_page()
        login_pg.login_successful(var.test_username, var.test_password)

        assert login_pg.successful_message(
        ) == var.test_username, "User do not match"
예제 #16
0
def class_web():
    '''初始化浏览器'''
    driver = Chrome()
    login_page = LoginPage(driver)

    yield driver, login_page

    driver.quit()
예제 #17
0
def home_page_logged_in(base_url, selenium, variables):
    """Logs in to the server and returns the dashboard page."""
    from pages.login import LoginPage
    login_pg = LoginPage(base_url, selenium)
    login_pg.open()
    home_pg = login_pg.login(variables['credentials']['fusor']['username'],
                             variables['credentials']['fusor']['password'])
    return home_pg
 def test_add_user(self):
     self.driver.get('http://127.0.0.1:8000/admin')
     login_page = LoginPage(self.driver)
     admin_page = login_page.login('admin', 'p@ssword')
     add_user_page = admin_page.go_to_add_user_page()
     user_page = add_user_page.add_user('testuser', 'dummy_p@ssword')
     self.assertIn('testuser</a>" を追加しました。続けて編集できます。</li>',
                   user_page.driver.page_source)
예제 #19
0
    def logout(self):
        self.browser.find_element_by_id("welcome").click()

        self.wait.until(
            EC.visibility_of_element_located([By.LINK_TEXT,
                                              "Logout"])).click()

        LoginPage(self.browser).wait_for_page_to_load()
예제 #20
0
 def test_institutional_login(self, driver):
     """Check that you arrive on the institutional login page and the institution dropdown is populated.
     We can't actually test institutional login.
     """
     login_page = LoginPage(driver)
     login_page.goto()
     login_page.institutional_login_button.click()
     institutional_login_page = InstitutionalLoginPage(driver, verify=True)
     assert len(institutional_login_page.dropdown_options) > 1
예제 #21
0
    def test_wrong_login_verification(self):
        home_pg = Utilities.open_homepage(self.selenium)
        login_pg = LoginPage(self.selenium)
        home_pg.go_to_login_page()
        login_pg.login_as_wrong_user()

        assert login_pg.error_message() ==\
            "Login was unsuccessful. Please correct the errors and try again.",\
            "Message do not match"
 def testUserLogin(self):
     # Happy Path - Login Success
     self.login_page = LoginPage()
     user = '******'
     password = '******'
     self.login_page.log_in_as(user, password)
     welcome_message = self.login_page.get_auth_message()
     self.assertIn('Welcome back', welcome_message.text)
     self.login_page.quit()
예제 #23
0
def test_successfully_login(setup):
    login_page = LoginPage(setup["Driver"])
    inventory_page = login_page.actions.login(setup["UserName"], setup["Password"])
    element_is_displayed(inventory_page.banner.swag_labs_label)
    element_is_displayed(inventory_page.banner.peek_icon)
    element_is_displayed(inventory_page.sort_drop_down)
    element_is_displayed(inventory_page.banner.cart_icon)
    element_is_displayed(inventory_page.footer)
    element_list_is_not_empty(inventory_page.product_list)
예제 #24
0
def init_driver():
    print('begin driver')
    driver = webdriver.Chrome()
    login_page = LoginPage(driver)
    driver.get('http://120.78.128.25:8765/Index/login.html')
    yield (driver, login_page)  #相当于setup
    #生成器,迭代器
    driver.quit()
    print('quit driver')
예제 #25
0
 def setUp(self):
     """
     初始化浏览器
     :return:
     """
     self.driver = webdriver.Chrome()
     self.driver.implicitly_wait(20)
     self.login_page = LoginPage(self.driver)
     self.home_page = HomePage(self.driver)
예제 #26
0
def testing_with_incorrect_data(browser, user_name, pass_word):
    login_page = LoginPage(browser)
    login_page.load(url=data.LOGIN_URL)
    login_page.fill_username(user_name)
    login_page.fill_password(pass_word)
    login_page.click_login()
    login_message_has_part = login_page.check_login_message('Please try again')

    assert login_message_has_part is True
def test_disable_section_on_ui(browser):
    """This is test will verify that disabling of sections in form reward payload"""
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    disable_status = reward_page.check_sections_after_disable_on_ui()
    assert disable_status, "Failed to disable the UI Section"
예제 #28
0
def test_phantom_login(mozwebqa):
    """https://bugzilla.redhat.com/show_bug.cgi?id=996284"""
    login_pg = LoginPage(mozwebqa)
    login_pg.go_to_login_page()
    next_pg = login_pg.login_and_send_window_size()
    Assert.not_equal(
        next_pg.get_context_current_page(), '/',
        "Phantom Login - Got redirected back to the login page after logging in"
    )
예제 #29
0
def test_invalid_login_empty_email():
    with pytest.allure.step('Testing invalid login try with empty email'):
        logger.info('Start testing login with invalid email')
        page = HomePage(driver).logging()
        page = LoginPage(driver).input_password().login()
        logger.info('Checking proper work of error handler with invalid email')
        error_text = page.driver.find_element_by_class_name('alert')
        assert 'Warning: No match for E-Mail Address and/or Password' in error_text.text
        logger.info(
            'Work of error handler with invalid email has been checked')
예제 #30
0
def class_web2():
    '''初始化浏览器并登陆'''
    driver = Chrome()
    login_page = LoginPage(driver)
    login_page.login("18684720553", "python")
    bid_page = BidPage(driver)

    yield driver, bid_page

    driver.quit()