com.vaadin.testbench.By.java Source code

Java tutorial

Introduction

Here is the source code for com.vaadin.testbench.By.java

Source

/**
 * Copyright (C) 2012 Vaadin Ltd
 *
 * This program is available under Commercial Vaadin Add-On License 3.0
 * (CVALv3).
 *
 * See the file licensing.txt distributed with this software for more
 * information about licensing.
 *
 * You should have received a copy of the license along with this program.
 * If not, see <http://vaadin.com/license/cval-3>.
 */
package com.vaadin.testbench;

import java.util.List;

import org.openqa.selenium.SearchContext;
import org.openqa.selenium.WebElement;

public abstract class By extends org.openqa.selenium.By {

    /**
     * Finds an element using a Vaadin selector
     * 
     * @param vaadinSelector
     *            the selector string.
     * @return an element or null if none found.
     */
    public static org.openqa.selenium.By vaadin(final String vaadinSelector) {
        if (vaadinSelector == null || "".equals(vaadinSelector)) {
            throw new IllegalArgumentException("Cannot find elements with a null or empty selector.");
        }

        return new ByVaadin(vaadinSelector);
    }

    public static class ByVaadin extends org.openqa.selenium.By {
        private final String vaadinSelector;

        public ByVaadin(String vaadinSelector) {
            this.vaadinSelector = vaadinSelector;
        }

        /**
         * Returns a list of WebElements identified by a Vaadin ComponentFinder
         * selector.
         * 
         * @param context
         *            SearchContext for originating the search
         * @return List of found WebElements
         */
        @Override
        public List<WebElement> findElements(SearchContext context) {
            return TestBenchDriverProxy.findElementsByVaadinSelector(vaadinSelector, context);
        }

        /**
         * Returns a WebElement identified by a Vaadin ComponentFinder
         * selector.
         * 
         * @param context
         *            SearchContext for originating the search
         * @return First found WebElement
         */
        @Override
        public WebElement findElement(SearchContext context) {
            return TestBenchDriverProxy.findElementByVaadinSelector(vaadinSelector, context);
        }

        @Override
        public String toString() {
            return "By.vaadin: " + vaadinSelector;
        }
    }

}