All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.automationrockstars.design.gir.webdriver.plugin.LoggingPlugin Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright (c) 2015, 2016 Automation RockStars Ltd.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Apache License v2.0
 * which accompanies this distribution, and is available at
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Contributors:
 *     Automation RockStars - initial API and implementation
 *******************************************************************************/
package com.automationrockstars.design.gir.webdriver.plugin;

import com.automationrockstars.base.ConfigLoader;
import com.automationrockstars.design.gir.webdriver.UiObject;
import org.openqa.selenium.*;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.openqa.selenium.interactions.Coordinates;
import java.util.List;


public class LoggingPlugin implements UiObjectInfoPlugin, UiObjectActionPlugin, UiObjectFindPlugin {

    private static final Logger LOG = LoggerFactory.getLogger(LoggingPlugin.class);

    @Override
    public void beforeGetTagName(UiObject element) {
        LOG.info("Getting tag name of {}", element);

    }

    @Override
    public void afterGetTagName(UiObject element, String value) {
        LOG.info("Tag name for {} is {}", element, value);

    }

    @Override
    public void beforeGetAttribute(UiObject element, String name) {
        LOG.info("Getting attribute {} of element {}", name, element);

    }

    @Override
    public void afterGetAttribute(UiObject element, String name, String value) {
        LOG.info("Got value {} of attribute {} for {}", value, name, element);

    }

    @Override
    public void beforeIsSelected(UiObject element) {
        LOG.info("Checking if {} is selected", element);

    }

    @Override
    public void afterIsSelected(UiObject element, boolean value) {
        LOG.info("Element {} is selected {}", element, value);

    }

    @Override
    public void beforeIsEnabled(UiObject element) {
        LOG.info("Checking if {} is enabled", element);

    }

    @Override
    public void afterIsEnabled(UiObject element, boolean value) {
        LOG.info("Element {} is enabled {}", element, value);

    }

    @Override
    public void beforeGetText(UiObject element) {
        LOG.info("Getting text of {}", element);

    }

    @Override
    public void afterGetText(UiObject element, String value) {
        LOG.info("Element {} has text {}", element, value);

    }

    @Override
    public void beforeIsDisplayed(UiObject element) {
        LOG.info("Checking if element {} is displayed", element);

    }

    @Override
    public void afterIsDisplayed(UiObject element, boolean value) {
        LOG.info("Element {} is displayed {}", element, value);
    }

    @Override
    public void beforeGetLocation(UiObject element) {
        LOG.info("Getting location of {}", element);
    }

    @Override
    public void afterGetLocation(UiObject element, Point value) {
        LOG.info("Element {} has location {}", element, value);
    }

    @Override
    public void beforeGetSize(UiObject element) {
        LOG.info("Getting size of element {}", element);
    }

    @Override
    public void afterGetSize(UiObject element, Dimension value) {
        LOG.info("Elment {} has size {}", element, value);

    }

    @Override
    public void beforeGetCssValue(UiObject element, String propertyName) {
        LOG.info("Getting CSS value {} of element {}", propertyName, element);
    }

    @Override
    public void afterGetCssValue(UiObject element, String propertyName, String value) {
        LOG.info("Element {} has CSS {}:{}", element, propertyName, value);

    }

    @Override
    public  void beforeGetScreenshotAs(UiObject element, OutputType target) {
        LOG.info("Getting screnshot of {} to {}", element, target);

    }

    @Override
    public  void afterGetScreenshotAs(UiObject element, OutputType target, X screenshot) {
        LOG.info("Screenshot {} of {} taken to {}", screenshot, element, target);

    }

    @Override
    public void beforeGetCoordinates(UiObject uiObject) {
        LOG.info("Getting coordindate of {}", uiObject);
    }

     @Override
    public void afterGetCoordinates(UiObject uiObject, Coordinates result) {
        LOG.info("Element {} has coordinates {} on page", uiObject, result.onPage());

    }

    @Override
    public void beforeFindElements(UiObject element, By by) {
        LOG.info("Starting to find elements {} using {}", by, element);
    }

    @Override
    public void afterFindElements(UiObject element, By by, List result) {
        LOG.info("{} elements found with {} using {}", result.size(), by, element);

    }

    @Override
    public void beforeFindElement(UiObject element, By by) {
        LOG.info("Starting to search of element located by {} using {}", by, element);

    }

    @Override
    public void afterFindElement(UiObject element, By by, WebElement result) {
        LOG.info("Found {} with locator {} using {}", result, by, element);

    }

    @Override
    public void beforeClick(UiObject element) {
        LOG.info("Clicking on {}", element);

    }

    @Override
    public void afterClick(UiObject element) {
        LOG.info("Element {} clicked", element);

    }

    @Override
    public void beforeSubmit(UiObject element) {
        LOG.info("Submitting on {}", element);

    }

    @Override
    public void afterSubmit(UiObject element) {
        LOG.info("Element {} submitted", element);

    }

    private CharSequence[] hideKeys(final UiObject element, final CharSequence... keys) {
        if (ConfigLoader.config().containsKey("webdriver.log.hide_inputs")) {
            String[] inputsToHide = ConfigLoader.config().getStringArray("webdriver.log.hide_inputs");
            for (String elementName : inputsToHide) {
                if (element.toString().toLowerCase().contains(elementName.toLowerCase())) {
                    return new CharSequence[]{"**************"};
                }
            }
            return keys;
        } else return keys;
    }

    @Override
    public void beforeSendKeys(UiObject element, CharSequence... keysToSend) {
        LOG.info("Sending {} to element {}", hideKeys(element, keysToSend), element);

    }

    @Override
    public void afterSendKeys(UiObject element, CharSequence... keysToSend) {
        LOG.info("Keys {} sent to {}", hideKeys(element, keysToSend), element);

    }

    @Override
    public void beforeClear(UiObject element) {
        LOG.info("Starting to clear {}", element);

    }

    @Override
    public void afterClear(UiObject element) {
        LOG.info("Element {} cleared", element);

    }

    @Override
    public void beforeWaitForVisible(UiObject element) {
        LOG.info("Waiting for {} being visible", element);

    }

    @Override
    public void afterWaitForVisible(UiObject element) {
        LOG.info("Waiting for visibility of {} finished ", element);

    }

    @Override
    public void beforeWaitForPresent(UiObject element) {
        LOG.info("Waiting for {} being present", element);

    }

    @Override
    public void afterWaitForPresent(UiObject element) {
        LOG.info("Waiting for presence of {} finished", element);

    }

    @Override
    public void beforeGetRect(UiObject uiObject) {
        LOG.info("Getting rectangel of {}", uiObject);

    }

    @Override
    public void afterGetRect(UiObject uiObject, Rectangle rect) {
        LOG.info("Rectangle of {} is {}", uiObject, rect);

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy