Exemple #1
0
def mouse_hover(element):
    _run_wait_hook()
    driver = get_driver()
    webelement = driver.find(element)
    step_message = 'Mouse hover element \'{0}\''.format(webelement.name)
    logger.logger.info(step_message)
    ActionChains(driver).move_to_element(webelement).perform()
Exemple #2
0
def send_keys(element, text):
    _run_wait_hook()
    webelement = get_driver().find(element)
    step_message = 'Write \'{0}\' in element {1}'.format(text, webelement.name)
    webelement.send_keys(text)
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
Exemple #3
0
def click(element):
    _run_wait_hook()
    webelement = get_driver().find(element)
    step_message = 'Click {0}'.format(webelement.name)
    webelement.click()
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
Exemple #4
0
def verify_text(text):
    _run_wait_hook()
    driver = get_driver()
    step_message = 'Verify \'{0}\' is present in page'.format(text)
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
    if text not in driver.page_source:
        raise TextNotPresent(
            "Text '{}' was not found in the page".format(text))
Exemple #5
0
def verify_is_visible(element):
    _run_wait_hook()
    webelement = get_driver().find(element)
    step_message = 'Verify the element \'{0}\' is visible'.format(
        webelement.name)
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
    if not webelement.is_displayed():
        raise Exception('Element is not visible')
Exemple #6
0
def verify_exists(element):
    _run_wait_hook()
    step_message = 'Verify that the element exists'
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
    try:
        webelement = get_driver().find(element, timeout=1)
    except:
        raise ElementNotFound('Element {} does not exist'.format(element))
Exemple #7
0
def select_by_value(element, value):
    _run_wait_hook()
    webelement = get_driver().find(element)
    step_message = 'Select \'{0}\' value from element {1}'.format(
        value, webelement.name)
    select = selenium.webdriver.support.select.Select(webelement)
    select.select_by_value(value)
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
Exemple #8
0
def press_key(element, key):
    step_message = 'Press key: {}'.format(key)
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
    webelement = get_driver().find(element)
    if key == 'RETURN' or key == 'ENTER':
        webelement.send_keys(Keys.RETURN)
    else:
        raise Exception('Key value {} is invalid'.format(key))
Exemple #9
0
def verify_text_in_element(element, text):
    _run_wait_hook()
    webelement = get_driver().find(element)
    step_message = 'Verify element \'{0}\' contains text \'{1}\''.format(
        webelement.name, text)
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
    if text not in webelement.text:
        raise TextNotPresent(
            "Text \'{0}\' was not found in element {1}".format(
                text, webelement.name))
Exemple #10
0
def verify_selected_option(element, text):
    _run_wait_hook()
    webelement = get_driver().find(element)
    select = selenium.webdriver.support.select.Select(webelement)
    step_message = 'Verify selected option of element \'{0}\' is \'{1}\''.format(
        webelement.name, text)
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
    if not select.first_selected_option.text == text:
        raise TextNotPresent('Option selected in element \'{0}\' '
                             'is not {1}'.format(webelement.name, text))
Exemple #11
0
def wait_for_element_enabled(element, timeout=20):
    logger.logger.info('Waiting for element {} to be enabled'.format(element))
    start_time = time.time()
    timed_out = False
    webelement = get_driver().find(element)
    enabled = webelement.is_enabled()
    while not enabled:
        logger.logger.debug('Element is not enabled, waiting..')
        time.sleep(0.5)
        enabled = webelement.is_displayed()
        if time.time() - start_time > timeout:
            timed_out = True
Exemple #12
0
def verify_not_exists(element):
    _run_wait_hook()
    step_message = 'Verify that the element'
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
    try:
        webelement = get_driver().find(element)
        if webelement:
            raise Exception('Element {} exists and should not'.format(
                webelement.name))
    except ElementNotFound:
        pass
Exemple #13
0
def wait_for_element_visible(element, timeout=20):
    try:
        timeout = int(timeout)
    except:
        raise Exception('Timeout should be digits only')
    _run_wait_hook()
    logger.logger.info('Waiting for element {} to be visible'.format(element))
    start_time = time.time()
    timed_out = False
    webelement = get_driver().find(element)
    while not webelement.is_displayed() and not timed_out:
        logger.logger.debug('Element is not visible, waiting..')
        time.sleep(0.5)
        if time.time() - start_time > timeout:
            timed_out = True
Exemple #14
0
def capture(message=''):
    _run_wait_hook()
    logger.logger.info('Take screenshot {}'.format(message))
    driver = get_driver()
    # print('SHOULD SAVE SCREENSHOT IN', core.report_directory)

    # store img in memory and save to disk when at the end
    # when the report is generated
    # Note: this solution uses pillow
    # img = Image.open(io.BytesIO(driver.get_screenshot_as_png()))
    # img_id = str(uuid.uuid4())[:8]
    # logger.screenshots[img_id] = img

    # store image at this point, the target directory is already
    # created since the beginning of the test, stored in golem.gore.report_directory
    img_id = str(uuid.uuid4())[:8]
    img_path = os.path.join(core.report_directory, '{}.png'.format(img_id))
    driver.get_screenshot_as_file(img_path)

    full_message = '{0}__{1}'.format(message, img_id)
    step(full_message)
Exemple #15
0
def navigate(url):
    step_message = 'Navigate to: \'{0}\''.format(url)
    driver = get_driver()
    driver.get(url)
    logger.logger.info(step_message)
    _capture_or_add_step(step_message, core.settings['screenshot_on_step'])
Exemple #16
0
def close():
    logger.logger.info('Close driver')
    driver = get_driver()
    driver.quit()
    core.reset_driver_object()