def setUp(self): self.user = helpers.create_user() page = LoginPage().log_in(self.user) key = page.settings.add_api_key() page.close() self.client = OsfClient(api_key=key)
class Trader(object): def __init__(self, driver, waiting_time=5): self.driver = driver self.login_page = LoginPage(self.driver, waiting_time) self.trading_page = TradingPage(self.driver, waiting_time) self.portfolio_page = PortfolioPage(self.driver, waiting_time) def __del__(self): print("Trader destroyed!") def login(self): self.login_page.open_page() self.login_page.login() def open_trading_page(self): self.trading_page.open_page() def logout(self): self.trading_page.logout() def trade(self, ticker, action, amount): self.trading_page.trade(ticker, action, amount) def open_portfolio_page(self): self.portfolio_page.open_page() def get_portfolio(self): return self.portfolio_page.get_portfolio()
def test_login_form_fb_exists(self): """Ensure Facebook button present on login form""" page = LoginPage(self.driver) page.get("/user/sign-in") self.assertIsNotNone(page.facebook_button)
def setUp(self): """ Instantiate the page objects. """ super(OAuth2FlowTests, self).setUp() self.insights_login_page = LoginPage(self.browser)
def test_login_page(self): """Ensure login page loads successfully""" page = LoginPage(self.driver) page.get("/user/sign-in") self.assertNotIn("Uh-oh", page.w.find_element_by_tag_name("body").text)
def test_add_admin_success(self): """ Test case Super Admin success add new admin """ # create Login page object self.loginpage = LoginPage(self.driver) # Step 1 - Login as Super Admin self.loginpage.login_superadmin_success() # create Dashboard page object self.dashboardpage = DashboardPage(self.driver) # Step 2 - Click menu admin management self.dashboardpage.redirect_to_admin_management_page() # create Admin Management page object self.adminmanagementpage = AdminManagementPage(self.driver) # Step 3 - Click add admin button fill the form with correct requirements self.adminmanagementpage.superadmin_success_add_admin() # Step 4 - Assertion : Redirected back to Admin Management page self.adminmanagementpage.is_visible(Locators.ADD_ADMIN_BUTTON)
def setUp(self): page = LoginPage().log_in(helpers.create_user()) self.client = OsfClient( api_key=page.settings.add_api_key() ) page.log_out() page.close()
def test_search_data_not_found(self): """ Test case to search data with unregistered account number """ # create Login page object self.loginpage = LoginPage(self.driver) # Step 1 - Login self.loginpage.login_admin_success() # create Dashboard page object self.dashboardpage = DashboardPage(self.driver) # Step 2 - Click menu Cashflow and choose 'Atur Pengeluaran' self.dashboardpage.redirect_to_atur_pengeluaran_page() # create 'Atur Pengeluaran' page object self.aturpengeluaranpage = AturPengeluaranPage(self.driver) # Step 3 - Input unregistered account number on the search bar self.aturpengeluaranpage.search_data_atur_pengeluaran_not_found() # Step 4 - Assertion : No data is presented element_text = self.aturpengeluaranpage.get_text(Locators.ATUR_PENGELUARAN_INFORMATION_COUNT_DATA) self.assertEqual('Menampilkan semua "0 atur pengeluaran"', element_text)
def test_add_admin_failed_username_registered(self): """ Test case untuk memastikan bahwa superadmin tidak dapat menambahkan admin jika username telah terdaftar """ # membuat objek loginpage self.loginpage = LoginPage(self.driver) # Step 1 - login sebagai superadmin self.loginpage.login_superadmin_success() # membuat objek dashboard page self.dashboardpage = DashboardPage(self.driver) # Step 2 - Click menu admin management self.dashboardpage.redirect_to_admin_management_page() # membuat objek admin management page self.adminmanagementpage = AdminManagementPage(self.driver) # Step 3 - Click add admin button dan lengkapi form tambah data admin self.adminmanagementpage.superadmin_failed_add_admin_if_username_registered( ) # Step 4 - Assertion element_text = self.adminmanagementpage.get_text( Locators.ALERT_FAILED_ADD_ADMIN) self.assertEqual("Username is already in use!", element_text)
def test_add_admin_failed_username_registered(self): """ Test case Super Admin failed add new admin with registered username """ # create Login page object self.loginpage = LoginPage(self.driver) # Step 1 - Login as Super Admin self.loginpage.login_superadmin_success() # create Dashboard page object self.dashboardpage = DashboardPage(self.driver) # Step 2 - Click menu admin management self.dashboardpage.redirect_to_admin_management_page() # create Admin Management page object self.adminmanagementpage = AdminManagementPage(self.driver) # Step 3 - Click add admin button and fill the form with registered username self.adminmanagementpage.superadmin_failed_add_admin_if_username_registered() # Step 4 - Assertion : Alert message is visible element_text = self.adminmanagementpage.get_text(Locators.ALERT_FAILED_ADD_ADMIN) self.assertEqual("Username is already in use!", element_text)
def test_serach_data_not_found(self): """ Test case untuk mencari data atur pengeluaran dengan account number yang tidak ada """ # membuat objek loginpage self.loginpage = LoginPage(self.driver) # Step 1 - login self.loginpage.login_admin_success() # membuat objek dashboard page self.dashboardpage = DashboardPage(self.driver) # Step 2 - Click menu cashflow and choose atur pengengeluaran self.dashboardpage.redirect_to_atur_pengeluaran_page() # membuat objek atur pengeluaran page self.aturpengeluaranpage = AturPengeluaranPage(self.driver) # Step 3 - input no rekening di search bar self.aturpengeluaranpage.search_data_atur_pengeluaran_not_found() # Step 4 - Assertion element_text = self.aturpengeluaranpage.get_text( Locators.ATUR_PENGELUARAN_INFORMATION_COUNT_DATA) self.assertEqual('Menampilkan semua "0 atur pengeluaran"', element_text)
class TestLoginPage(MyPyTest): """ 腾讯登录测试类 """ test_case_data = GetYaml(config.TEST_DATA_PATH + '\\' + 'login_page_data.yaml') def setup(self): with allure.step("进入{}".format(config.URL)): self.lp = LoginPage(self.driver, config.URL) self.lp.open() def teardown(self): """ 后置动作 :return: """ self.lp.sleeping() @allure.story("账号密码登录") @allure.severity(allure.severity_level.NORMAL) @pytest.mark.parametrize("data", test_case_data.all_data()) def test_login_window(self, data): """ 测试腾讯网的账号密码的跳转 """ # 跳转到登录,进入账号密码登录页面 self.lp.dig_login_page() with allure.step("输入账号和密码,点击登录"): self.lp.login_username(data['data']['id']) self.lp.login_password(data['data']['pwd'])
def test_guest_can_go_to_login_page(self, browser): link = "http://selenium1py.pythonanywhere.com/" page = MainPage(browser, link) page.open() page.should_be_login_link() page.go_to_login_page() login_page = LoginPage(browser, browser.current_url) login_page.should_be_login_page()
def test_guest_can_go_to_login_page_from_product_page(browser): link = "http://selenium1py.pythonanywhere.com/en-gb/catalogue/the-city-and-the-stars_95/" page = ProductPage(browser, link) page.open() page.should_be_login_link() page.go_to_login_page() login_page = LoginPage(browser, browser.current_url) login_page.should_be_login_page()
def test_login_correct_credentials(chrome_browser): CORRECT_USERNAME = '******' CORRECT_PASSWORD = '******' owncloud = LoginPage(chrome_browser) owncloud.login(username=CORRECT_USERNAME, password=CORRECT_PASSWORD) logged_user_text = owncloud.get_logged_user_text() assert logged_user_text == CORRECT_USERNAME
def setUp(self): # create a user self.user = helpers.create_user() # log them in self.browser = LoginPage().log_in(self.user) # create a new API key self.api_key = self.browser.settings.add_api_key()
def test_ftb(browser): login_page = LoginPage(browser) assert login_page.welcomebtn.text == 'Log in' login_page.enter_details(PASSWORD) ftb_page = FTBPage(browser, force_load=True) # Introduce additional checks here print(ftb_page.page_title)
def setUp(self): # get the API key for an unrelated user page = LoginPage().log_in(helpers.create_user()) self.api_key = page.settings.add_api_key() page.close() # create a user to use self.user = helpers.create_user() self.browser = LoginPage().log_in(self.user)
class ApiAnonymousTestCase(unittest.TestCase): def setUp(self): # create a user to use self.user = helpers.create_user() self.browser = LoginPage().log_in(self.user) def tearDown(self): # close the browser self.browser.close()
def test_login_incorrect_credentials(chrome_browser): INCORRECT_USERNAME = '******' INCORRECT_PASSWORD = '******' owncloud = LoginPage(chrome_browser) owncloud.login(username=INCORRECT_USERNAME, password=INCORRECT_PASSWORD) lost_password_text = owncloud.get_lost_password_text() assert lost_password_text.strip( ) == OwnCloudLoginPageLocators.LOST_PASSWORD_INFO_TEXT
def login(get_driver, cmdopt_url, login_param): """fixture to login""" login_page = LoginPage(get_driver, cmdopt_url) login_page.navigate() login, password = login_param login_page.login(login, password) login_page.close_modal_window() return login_page.get_url()
def get_new_project(title="New Project", description=None): """ Create a new project; return its page. """ # Log in from pages import LoginPage page = LoginPage() page = page.log_in(create_user()) # create the project return page.new_project(title=title, description=description)
def get_new_project(title='New Project', description=None): """ Create a new project; return its page. """ # Log in from pages import LoginPage page = LoginPage() page = page.log_in(create_user()) # create the project return page.new_project(title=title, description=description)
def test_login_failed_wrong_password(self): """ Test case Login failed with wrong password """ # create Login page object self.loginpage = LoginPage(self.driver) # Step 1 - Input correct username, input wrong password then click Login button self.loginpage.login_failed_if_wrong_password() # Step 2 - Assertion : Toast alert is visible self.loginpage.is_visible(Locators.LOGIN_ALERT_TOAST)
def test_login_failed_wrong_password(self): """ Test case untuk memastikan bahwa login akan gagal kemudian muncul toast alert jika password salah """ # membuat objek loginpage self.loginpage = LoginPage(self.driver) # Step 1 - input username, input wrong password kemudian klik tombol login self.loginpage.login_failed_if_wrong_password() # Step 2 - Assertion self.loginpage.is_visible(Locators.LOGIN_ALERT_TOAST)
class ApiNonContributorTestCase(unittest.TestCase): def setUp(self): # get the API key for an unrelated user page = LoginPage().log_in(helpers.create_user()) self.api_key = page.settings.add_api_key() page.close() # create a user to use self.user = helpers.create_user() self.browser = LoginPage().log_in(self.user) def tearDown(self): # close the browser self.browser.close()
class OAuth2FlowTests(WebAppTest): def setUp(self): """ Instantiate the page objects. """ super(OAuth2FlowTests, self).setUp() self.login_page = LoginPage(self.browser) self.username = USERNAME self.password = PASSWORD def test_login(self): # Visit login URL and get redirected self.login_page.visit() # Input credentials and authorize self.login_page.q(css='input[name=username]').fill(self.username) self.login_page.q(css='input[name=password]').fill(self.password) self.login_page.q(css='button[type=submit]').click() if ENABLE_OAUTH_AUTHORIZE: self.login_page.q(css='input[name=authorize]').click() # User should arrive at course index page (or access denied page, if no permissions) # Splitting this out into two separate tests would require two separate sets of credentials. That is # feasible, but somewhat time-consuming. For now, we will rely on unit tests to validate the permissions and # ensure both cases below are met. self.assertTrue(self.browser.title.startswith('Courses') or self.browser.title.startswith('Access Denied'))
class ApiContributorTestCase(unittest.TestCase): def setUp(self): # create a user self.user = helpers.create_user() # log them in self.browser = LoginPage().log_in(self.user) # create a new API key self.api_key = self.browser.settings.add_api_key() def tearDown(self): # close the browser self.browser.close()
def test_change_user_fullname(self): user = helpers.create_user() page = LoginPage().log_in(user) profile_page = page.driver.find_element_by_link_text( 'My Public Profile').get_attribute('href') key = page.settings.add_api_key() page.close() r = requests.post(profile_page + 'edit/', auth=( key.key, '', ), data={ 'name': 'fullname', 'value': 'praC auhsoJ' }) self.assertEqual(r.status_code, http.OK) self.assertEqual( json.loads(r.content).get('response'), 'success', ) page = LoginPage().log_in(user) self.assertEqual(page.profile.full_name, 'praC auhsoJ') page.close()
def test_others_profile(self): own_profile = self.client.user() # Create another user, get their API key other_user = helpers.create_user() page = LoginPage().log_in(other_user) key = page.settings.add_api_key() page.close() other_client = OsfClient(api_key=key) other_profile = self.client.user(user_id=other_client.user().id) self.assertNotEqual( own_profile.id, other_profile.id, )
def main(): init() props = Properties.from_env() LoginPage().login(props.agency, props.account) KeypadPage().enter_password(props.password) HomePage().dismiss_popup().view_transactions() TransactionPage().filter_by_date(date(2020, 3, 1))
def driver(config, pytestconfig): # Validate and return the wait time choice from the system properties/ config data print('IMPLICITLY WAIT TIME: ', os.environ.get('WAIT_TIME')) if os.environ.get('WAIT_TIME') is None: # Jenkins implicit_wait = config['wait_time'] os.environ['WAIT_TIME'] = str(implicit_wait) else: implicit_wait = os.environ.get('WAIT_TIME') config['wait_time'] = implicit_wait print('BASE URL: ', pytestconfig.getoption('TEST_URL')) base_url = pytestconfig.getoption('TEST_URL') # Initialize WebDriver browser_factory = BrowserFactory.BrowserFactory() driver = browser_factory.get_browser( pytestconfig.getoption('BROWSER'), pytestconfig.getoption('BROWSER_MODE')) # Wait implicitly for elements to be ready before attempting interactions driver.implicitly_wait(implicit_wait) driver.get(pytestconfig.getoption('TEST_URL')) login = LoginPage.LoginPage(driver) login.login() # Return the driver object at the end of setup yield driver # For cleanup, quit the driver driver.quit()
def test_dynamic_content(browser, url, eyes): eyes.open(browser, "Applitools Demo", "Dynamic Content Test") new_url = url + "?showAd=true" HomePage(browser).go_to_page(new_url) LoginPage(browser).login_user("aaa", "aaa") eyes.check_window("Two gifs") eyes.close()
def test_login_admin_success(self): """ Test case untuk berhasil login sebagai admin """ # membuat objek loginpage self.loginpage = LoginPage(self.driver) # Step 1 - input username dan password sebagai admiin kemudian klik login self.loginpage.login_admin_success() # membuat objek dashboard page self.dashboardpage = DashboardPage(self.driver) # Step 2 - Assertion self.dashboardpage.is_visible(Locators.LOGO_DASHBOARD_HEADER)
def test_public_project_privacy_non_contributor(self): page = helpers.get_new_project() page.public = True _url = page.driver.current_url page.close() page = LoginPage().log_in(user=helpers.create_user()) page.driver.get(_url) page = ProjectPage(driver=page.driver) with self.assertRaises(NoSuchElementException): page.public = False page.close()
def setUp(self): """ Instantiate the page objects. """ super(OAuth2FlowTests, self).setUp() self.login_page = LoginPage(self.browser) self.username = USERNAME self.password = PASSWORD
class OAuth2FlowTests(LoginMixin, WebAppTest): def setUp(self): """ Instantiate the page objects. """ super(OAuth2FlowTests, self).setUp() self.insights_login_page = LoginPage(self.browser) def test_login(self): self.login_with_lms() # Visit login URL and get redirected self.insights_login_page.visit() # User should arrive at course index page (or access denied page, if no permissions) # Splitting this out into two separate tests would require two separate sets of credentials. That is # feasible, but somewhat time-consuming. For now, we will rely on unit tests to validate the permissions and # ensure both cases below are met. self.assertTrue(self.browser.title.startswith('Courses') or self.browser.title.startswith('Access Denied'))
def test_change_user_fullname(self): user = helpers.create_user() page = LoginPage().log_in(user) profile_page = page.driver.find_element_by_link_text( 'My Public Profile' ).get_attribute('href') key = page.settings.add_api_key() page.close() r = requests.post( profile_page + 'edit/', auth=( key.key, '', ), data={ 'name': 'fullname', 'value': 'praC auhsoJ' } ) self.assertEqual(r.status_code, http.OK) self.assertEqual( json.loads(r.content).get('response'), 'success', ) page = LoginPage().log_in(user) self.assertEqual( page.profile.full_name, 'praC auhsoJ' ) page.close()
def setUp(self): self.driver = get_driver() # 1) login_page = LoginPage(driver=self.driver, url=base_url) login_page.open() login_page.wait_for_loading() coll_page = login_page.login_with(credentials) self.page = coll_page
def test_public_nested_component_title_change_non_contributor(self): page = helpers.get_new_nested_component() page.public = True _url = page.driver.current_url page.log_out() page.close() page = LoginPage() page.log_in(helpers.create_user()) page.driver.get(_url) page = ProjectPage(driver=page.driver) with self.assertRaises(NoSuchElementException): page.title = 'changed' page.close()
def test_user_key_creation(self): user = helpers.create_user() page = LoginPage().log_in(user) key = page.settings.add_api_key() page.close() self.assertIsInstance(key, ApiKey)
def setUp(self): # create a user to use self.user = helpers.create_user() self.browser = LoginPage().log_in(self.user)