def signup(self, first_name = 'SauceLabs', last_name = 'Automation', email = helpers.generate_email(helpers.generate_date_stamp()), company = 'Foothill CS82A', company_size = '11-50', username = helpers.generate_date_stamp()[9:], password1='SauceLabs2015', password2='SauceLabs2015', ): driver = self.driver driver.get(self.base_url) # Navigate to FREE TRIAL page from home page's header driver.find_element_by_css_selector(locators['free_trial']).click() # First Name and Last Name driver.find_element_by_id(locators['first_name']).send_keys(first_name) driver.find_element_by_id(locators['last_name']).send_keys(last_name) # Email driver.find_element_by_id(locators['email']).send_keys(email) # Company driver.find_element_by_id(locators['company']).send_keys(company) # Company Size Select(driver.find_element_by_id(locators['company_size'])).select_by_visible_text(company_size) # Username value has to already exist driver.find_element_by_id(locators['username']).send_keys(username) # Password values have to match driver.find_element_by_id(locators['password']).send_keys(password1) driver.find_element_by_id(locators['password_confirm']).send_keys(password2) # Submit the form driver.find_element_by_id(locators['submit_button']).click() return driver
def test_signup_happy_path(self): driver = self.driver driver.get(self.base_url) # Navigate to FREE TRIAL page from home page's header driver.find_element_by_css_selector(locators['free_trial']).click() # First Name and Last Name driver.find_element_by_id( locators['first_name']).send_keys('SauceLabs') driver.find_element_by_id( locators['last_name']).send_keys('Automation') # Email value has to be unique! unique_date_stamp = helpers.generate_date_stamp() email = helpers.generate_email(date_stamp=unique_date_stamp) driver.find_element_by_id(locators['email']).send_keys(email) # Company driver.find_element_by_id( locators['company']).send_keys('Foothill CS82A') # Company Size Select(driver.find_element_by_id( locators['company_size'])).select_by_visible_text('11-50') # Username value has to be unique # Use the hhmmss-mmmmmm portion of the unique date stamp generated earlier driver.find_element_by_id(locators['username']).send_keys( unique_date_stamp[9:]) # Password values have to match driver.find_element_by_id( locators['password']).send_keys('SauceLabs2015') driver.find_element_by_id( locators['password_confirm']).send_keys('SauceLabs2015') # Submit the form try: element = WebDriverWait(driver, timeout).until( EC.presence_of_element_located( (By.ID, locators['submit_button']))) except TimeoutException: self.verificationErrors.append( "Timed out waiting for submit button") else: element.click() # Element found! # Verify that the new user has an Account page now try: self.assertEqual('Sauce Labs | Account', driver.title) except AssertionError as e: self.verificationErrors.append(str(e))
def test_signup_already_used_email_neg(self): driver = self.driver driver.get(self.base_url) # Navigate to FREE TRIAL page from home page's header driver.find_element_by_css_selector(locators['free_trial']).click() # First Name and Last Name driver.find_element_by_id( locators['first_name']).send_keys('SauceLabs') driver.find_element_by_id( locators['last_name']).send_keys('Automation') # Email value has to already exist for this negative test driver.find_element_by_id( locators['email']).send_keys('*****@*****.**') # Company driver.find_element_by_id( locators['company']).send_keys('Foothill CS82A') # Company Size Select(driver.find_element_by_id( locators['company_size'])).select_by_visible_text('11-50') # Username value has to be unique # Use the hhmmss-mmmmmm portion of a unique date stamp unique_date_stamp = helpers.generate_date_stamp() driver.find_element_by_id(locators['username']).send_keys( unique_date_stamp[9:]) # Password values have to match driver.find_element_by_id( locators['password']).send_keys('SauceLabs2015') driver.find_element_by_id( locators['password_confirm']).send_keys('SauceLabs2015') # Submit the form driver.find_element_by_id(locators['submit_button']).click() # Verify that the appropriate error message has been issued selector = driver.find_element_by_css_selector( locators['error_container']) try: self.assertEqual(in_use_email_error, selector.text) except AssertionError as e: self.verificationErrors.append(str(e))
def test_signup_happy_path(self): driver = self.driver driver.get(self.base_url) # Navigate to FREE TRIAL page from home page's header driver.find_element_by_css_selector(locators['free_trial']).click() # First Name and Last Name driver.find_element_by_id(locators['first_name']).send_keys('SauceLabs') driver.find_element_by_id(locators['last_name']).send_keys('Automation') # Email value has to be unique! unique_date_stamp = helpers.generate_date_stamp() email = helpers.generate_email(date_stamp = unique_date_stamp) driver.find_element_by_id(locators['email']).send_keys(email) # Company driver.find_element_by_id(locators['company']).send_keys('Foothill CS82A') # Company Size Select(driver.find_element_by_id(locators['company_size'])).select_by_visible_text('11-50') # Username value has to be unique # Use the hhmmss-mmmmmm portion of the unique date stamp generated earlier driver.find_element_by_id(locators['username']).send_keys(unique_date_stamp[9:]) # Password values have to match driver.find_element_by_id(locators['password']).send_keys('SauceLabs2015') driver.find_element_by_id(locators['password_confirm']).send_keys('SauceLabs2015') # Submit the form try: element = WebDriverWait(driver, timeout).until( EC.presence_of_element_located((By.ID, locators['submit_button']))) except TimeoutException: self.verificationErrors.append("Timed out waiting for submit button") else: element.click() # Element found! # Verify that the new user has an Account page now try: self.assertEqual('Sauce Labs | Account', driver.title) except AssertionError as e: self.verificationErrors.append(str(e))
def test_signup_already_used_username_neg(self): driver = self.driver driver.get(self.base_url) # Navigate to FREE TRIAL page from home page's header driver.find_element_by_css_selector(locators['free_trial']).click() # First Name and Last Name driver.find_element_by_id(locators['first_name']).send_keys('SauceLabs') driver.find_element_by_id(locators['last_name']).send_keys('Automation') # Email value has to be unique unique_date_stamp = helpers.generate_date_stamp() email = helpers.generate_email(date_stamp = unique_date_stamp) driver.find_element_by_id(locators['email']).send_keys(email) # Company driver.find_element_by_id(locators['company']).send_keys('Foothill CS82A') # Company Size Select(driver.find_element_by_id(locators['company_size'])).select_by_visible_text('11-50') # Username value has to be unique # for a negtive test, use a used username 'jadewu' driver.find_element_by_id(locators['username']).send_keys('jadewu') # Password values have to match driver.find_element_by_id(locators['password']).send_keys('SauceLabs2015') driver.find_element_by_id(locators['password_confirm']).send_keys('SauceLabs2015') # Submit the form driver.find_element_by_id(locators['submit_button']).click() # Verify that the appropriate error message has been issued selector = driver.find_element_by_css_selector(locators['error_container']) try: self.assertEqual(in_use_username_error, selector.text) except AssertionError as e: self.verificationErrors.append(str(e))
# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.support.ui import Select import unittest import helpers form_fields = { "first_name" : "SauceLabs", "last_name" : "Automation", "email" : helpers.generate_email(date_stamp=helpers.generate_date_stamp()), "company" : "Foothill CS82A", "username" : helpers.generate_date_stamp(), "password" : "", "password_confirm" : "" } class SauceLabsSignUpHappyPath(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "https://saucelabs.com/signup/trial" self.verificationErrors = [] def test_sauce_labs_sign_up_happy_path(self): driver = self.driver driver.get(self.base_url) for field in form_fields: driver.find_element_by_id(field).send_keys(form_fields[field]) #company size select from drop down