Пример #1
0
def login():
    utils.log('Logging in...')
    sel.initialize()
    sel.getUrl(env.login['url'])
    sel.sendKeysById('username', env.login['user'])
    sel.sendKeysById('password', env.login['pass'])
    sel.clickById('Login')
    result = False
    for i in range(10):
        if sel.getTitle() == 'Login | Salesforce' or \
           sel.getTitle() == 'Verify Your Identity | Salesforce' or \
           sel.getTitle() == 'Problem Verifying Your Identity | Salesforce':
            result = False
            break
        elif sel.getTitle() == 'Home | Salesforce':
            time.sleep(1)
            result = True
        elif ' - Console' in sel.getTitle():
            result = True
        elif ' | Salesforce' in sel.getTitle():
            result = True
        else:
            time.sleep(1)
    if result is False:
        utils.log('Login failed\n')
        exit()
    elif result is True:
        utils.log('Logged in\n')
Пример #2
0
def delete(parameters):
    utils.log('Deleting Account...')
    sel.getUrl(env.login['url'] + '/' + pars.account[parameters['accountHandle']])
    # Click the Show more actions icon
    for i in range(10):
        result = sel.clickByClassNameAndAttribute('slds-icon-utility-down', 'innerText', 'Show more actions')
        if result is True:
            break
        else:
            time.sleep(1)
    if result is False:
        utils.log('Could not click Show more Actions icon')
    # Click the Delete option
    for i in range(3):
        result = sel.clickByLinkText('Delete')
        if result is True:
            break
        else:
            time.sleep(1)
    if result is False:
        utils.log('Could not click Delete option')
    # Click the Delete button
    for i in range(10):
        result = sel.clickByClassNameAndAttribute('forceActionButton', 'innerText', 'Delete')
        if result is True:
            break
        else:
            time.sleep(1)
    if result is True:
        utils.log('Deleted Account: ' + pars.account[parameters['accountHandle']] + '\n')
        return True
    else:
        utils.log('Could not click Delete button')
        utils.log('Could not delete Account: ' + pars.account[parameters['accountHandle']] + '\n')
        return False
Пример #3
0
def logout():
    utils.log('Logging out...')
    sel.getUrl(env.login['url'])
    # Wait for Home page to load
    for i in range(30):
        if sel.getTitle() == 'Home | Salesforce':
            time.sleep(1)
            break
        else:
            time.sleep(1)
    # Click View profile icon
    for i in range(30):
        result = sel.clickByClassNameAndAttribute(
            'branding-userProfile-button', 'innerText', 'View profile')
        if result is True:
            time.sleep(1)
            break
        else:
            time.sleep(1)
    # Click Log Out link
    for i in range(30):
        result = sel.clickByLinkText('Log Out')
        if result is True:
            break
        else:
            time.sleep(30)
    # Wait for Login page to load
    for i in range(30):
        if sel.getTitle() == 'Login | Salesforce':
            result = True
            break
        else:
            time.sleep(1)
    # Log result, close browser and return
    if result is True:
        sel.quit()
        utils.log('Logged out\n')
        return True
    else:
        utils.log('Logout failed')
        return False
Пример #4
0
def create(parameters):
    utils.log('Creating Account...')
    # Open the Accounts page
    sel.getUrl(env.login['url'] + '/lightning/o/Account/home')
    # Click on the New Button
    for i in range(10):
        result = sel.clickByClassNameAndAttribute('forceActionLink', 'text', 'New')
        if result is True:
            break
        else:
            time.sleep(1)
    # Wait for the New Account form to load
    for i in range(3):
        result = sel.findElementByClassNameAndAttribute(
            'test-id__section-header-title', 'innerHTML', 'Account Information')
        if result is True:
            break
        else:
            time.sleep(1)
    # Send account parameters to form
    for field in pars.account[parameters['accountType']]:
        result = sel.fillLightningForm(field, pars.account[parameters['accountType']][field])
        if result is False:
            utils.log('Could not fill field: ' + field + ' with value: ' +
                      pars.account[parameters['accountType']][field])
    # Click Save
    result = sel.clickByClassNameAndAttribute('forceActionButton', 'innerText', 'Save')
    # Wait until the page loads, extract the account ID from the URL and return it
    for i in range(10):
        url = sel.getCurrentUrl()
        if '/view' in url:
            break
        else:
            time.sleep(1)
    accountId = url.split('/')[-2]
    utils.log('Created Account: ' + accountId + '\n')
    pars.account[parameters['accountHandle']] = accountId
    return True
Пример #5
0
def validate(parameters):
    utils.log('Validating Account ' + pars.account[parameters['accountHandle']] + ' ...')
    # Start logging results
    utils.results('Validate Account:,' + pars.account[parameters['accountHandle']])
    utils.results('Field,Expected,Actual,Result')
    # Navigate to the Account page
    sel.getUrl(env.login['url'] + '/' + pars.account[parameters['accountHandle']])
    # Click the Details tab
    for i in range(30):
        result = sel.clickByLinkText('Details')
        if result is True:
            break
        else:
            time.sleep(1)
    # Initialize the test result, validate account parameters and log result
    pars.testResult = 'Pass'
    skipList = ['accountHandle']
    for field in parameters:
        if field not in skipList:
            result = sel.validateLightningForm(field, parameters[field])
    utils.results('Result:,' + pars.testResult + '\n')
    utils.log('    Result: ' + pars.testResult)
    utils.log('Account ' + pars.account[parameters['accountHandle']] + ' validated\n')