Ejemplo n.º 1
0
    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))
Ejemplo n.º 3
0
    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))
Ejemplo n.º 5
0
    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