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)
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()
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)
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)
def init_web(): driver = Chrome() login_page = LoginPage(driver) driver.maximize_window() yield driver, login_page time.sleep(2) driver.quit()
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)
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()
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
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()
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
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
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'
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)
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"
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"
def class_web(): '''初始化浏览器''' driver = Chrome() login_page = LoginPage(driver) yield driver, login_page driver.quit()
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)
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()
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
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()
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)
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')
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)
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"
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" )
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')
def class_web2(): '''初始化浏览器并登陆''' driver = Chrome() login_page = LoginPage(driver) login_page.login("18684720553", "python") bid_page = BidPage(driver) yield driver, bid_page driver.quit()