Exemple #1
0
def verify_createCharacter(character_name, story_id_url, browser):
    # Identifiers
    newcharacter_button_identifier = id_characters.newcharacterbutton_linktext(
    )
    chracter_tocheck_identifier = id_characters.charactercheck_xpath(
        character_name)
    character_button_identifier = id_storyPage.charactersbutton_linktext()

    # Go to Story Page
    browser.get(story_id_url)

    # Go to Characters Page
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable(
            (By.LINK_TEXT, character_button_identifier)))
    button_characters = browser.find_element_by_link_text(
        character_button_identifier)
    button_characters.click()

    # Validate
    assertion = False
    try:
        WebDriverWait(browser, 30).until(
            EC.element_to_be_clickable(
                (By.LINK_TEXT, newcharacter_button_identifier)))
        browser.find_element_by_xpath(chracter_tocheck_identifier)
        assertion = True
    except:
        assertion = False

    return assertion
def customizeCharacter(story_id_url, character_name, body, body_color, brow,
                       brow_color, hair, hair_color, eyes, eyes_color, face,
                       nose, lips, lips_color, browser):

    # Identifiers
    character_button_identifier = id_storyPage.charactersbutton_linktext()

    # Go to Story Page
    browser.get(story_id_url)

    # Press the Characters button
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable(
            (By.LINK_TEXT, character_button_identifier)))
    character_button = browser.find_element_by_link_text(
        character_button_identifier)
    character_button.click()

    # Choose which Character to customize
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable((By.LINK_TEXT, character_name)))
    button_character_toCustomize = browser.find_element_by_link_text(
        character_name)
    button_character_toCustomize.click()

    # Customize
    customizeCharacterHelper("Body", body, body_color, True, browser)
    customizeCharacterHelper("Brow", brow, brow_color, True, browser)
    customizeCharacterHelper("Hair", hair, hair_color, True, browser)
    customizeCharacterHelper("Eyes", eyes, eyes_color, True, browser)
    customizeCharacterHelper("Face", face, "", False, browser)
    customizeCharacterHelper("Nose", nose, "", False, browser)
    customizeCharacterHelper("Lips", lips, lips_color, True, browser)
Exemple #3
0
def verify_customizeCharacter(character_name, body, body_color, brow,
                              brow_color, hair, hair_color, eyes, eyes_color,
                              face, nose, lips, lips_color, story_id_url,
                              browser):
    # Identifiers
    character_button_identifier = id_storyPage.charactersbutton_linktext()

    # Go to Story Page
    browser.get(story_id_url)

    # Press the Characters button
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable(
            (By.LINK_TEXT, character_button_identifier)))
    button_characters = browser.find_element_by_link_text(
        character_button_identifier)
    button_characters.click()

    # Choose which Character to check
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable((By.LINK_TEXT, character_name)))
    button_character_toCustomize = browser.find_element_by_link_text(
        character_name)
    button_character_toCustomize.click()

    # Uses Helper Function to Verify Parts
    body_assertion = verifyCustomizeCharacterHelper("Body", body, body_color,
                                                    True, browser)
    brow_assertion = verifyCustomizeCharacterHelper("Brow", brow, brow_color,
                                                    True, browser)
    hair_assertion = verifyCustomizeCharacterHelper("Hair", hair, hair_color,
                                                    True, browser)
    eyes_assertion = verifyCustomizeCharacterHelper("Eyes", eyes, eyes_color,
                                                    True, browser)
    face_assertion = verifyCustomizeCharacterHelper("Face", face, "", False,
                                                    browser)
    nose_assertion = verifyCustomizeCharacterHelper("Nose", nose, "", False,
                                                    browser)
    lips_assertion = verifyCustomizeCharacterHelper("Lips", lips, lips_color,
                                                    True, browser)

    assertion = False
    if body_assertion == True and \
       brow_assertion == True and \
       hair_assertion == True and \
       eyes_assertion == True and \
       face_assertion == True and \
       nose_assertion == True and \
       lips_assertion == True:
        assertion = True

    else:
        assertion = False
        print("One of the body parts for " + character_name +
              " assertions is incorrect.")

    return assertion
def createStory(url, story_name, browser):
    # Identifiers
    onboardingexit_button_identifier = id_home.onboardingpopupexit_classname()
    newstory_button_identifier = id_home.newstorybutton_xpath()
    storyname_input_identifier = id_home.storynameinput_xpath()
    storycreate_button_identifier = id_home.storycreatebutton_xpath()
    characters_button_identifier = id_storyPage.charactersbutton_linktext()

    # Redirect to Home Page
    browser.get(url)
    time.sleep(1)

    # Close New Onboarding Flow Popup
    try:
        WebDriverWait(browser, 5).until(
            EC.element_to_be_clickable(
                (By.CLASS_NAME, onboardingexit_button_identifier)))
        button_close_onboarding = browser.find_element_by_class_name(
            onboardingexit_button_identifier)
        button_close_onboarding.click()
    except:
        print("Onboarding Flow not found, continuing")

    # Create New Story Button Click
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable((By.XPATH, newstory_button_identifier)))
    newstory_button = browser.find_element_by_xpath(newstory_button_identifier)
    newstory_button.click(
    )  # New Story Button for creating new stories on Portal

    # Input the Story Name
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable((By.XPATH, storyname_input_identifier)))
    storyname_input = browser.find_element_by_xpath(storyname_input_identifier)
    storyname_input.clear()
    storyname_input.send_keys(story_name)

    # Submits Story
    storycreate_button = browser.find_element_by_xpath(
        storycreate_button_identifier)
    storycreate_button.click()

    # Wait until "Characters" button is loaded on Story Home Page and get current url
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable(
            (By.LINK_TEXT, characters_button_identifier)))
    story_url = browser.current_url
    return story_url
def createCharacterS4(story_id_url, character_model, character_name,
                      first_flag, browser):
    # Identifiers
    character_button_identifier = id_storyPage.charactersbutton_linktext()
    chooselimelight_button_identifier = id_characters.chooselimelight_linktext(
    )
    choosecinematic_button_identifier = id_characters.choosecinematic_linktext(
    )
    newcharacter_button_identifier = id_characters.newcharacterbutton_linktext(
    )
    actor_dropdown_identifier = id_characters.actordropdown_name()
    charactername_input_identifier = id_characters.characternameinput_name()

    # Go to Story Page
    browser.get(story_id_url)
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable(
            (By.LINK_TEXT, character_button_identifier)))
    character_button = browser.find_element_by_link_text(
        character_button_identifier)
    character_button.click()

    # If this is the first character, select the relevant styles
    if first_flag == True:
        try:
            # Choose Limelight (Style 4)
            WebDriverWait(browser, 30).until(
                EC.element_to_be_clickable(
                    (By.LINK_TEXT, chooselimelight_button_identifier)))
            chooselimelight_button = browser.find_element_by_link_text(
                chooselimelight_button_identifier)
            chooselimelight_button.click()

            # Choose Cinematic
            WebDriverWait(browser, 30).until(
                EC.element_to_be_clickable(
                    (By.LINK_TEXT, choosecinematic_button_identifier)))
            choosecinematic_button = browser.find_element_by_link_text(
                choosecinematic_button_identifier)
            choosecinematic_button.click()
        except:
            print(
                "Pop ups not found. May be an admin account running the automation or not a new story."
            )

    elif first_flag == False:
        # Click on the New Character button
        WebDriverWait(browser, 30).until(
            EC.element_to_be_clickable(
                (By.LINK_TEXT, newcharacter_button_identifier)))
        newcharacter_button = browser.find_element_by_link_text(
            newcharacter_button_identifier)
        newcharacter_button.click()

    # Creates Character
    WebDriverWait(browser, 30).until(
        EC.presence_of_element_located((By.NAME, actor_dropdown_identifier)))
    time.sleep(1)
    actor_locator = browser.find_element_by_name(actor_dropdown_identifier)
    actor = Select(actor_locator)
    actor.select_by_visible_text(character_model)
    time.sleep(1)

    # Creates Character Name
    charactername_input = browser.find_element_by_name(
        charactername_input_identifier)
    charactername_input.click()
    ActionChains(browser).send_keys(character_name + Keys.RETURN).perform()

    # Wait for next page to load
    WebDriverWait(browser, 30).until(
        EC.element_to_be_clickable(
            (By.LINK_TEXT, newcharacter_button_identifier)))