com.vaadin.testbench.

Class TestBenchElement

    • Constructor Detail

      • TestBenchElement

        protected TestBenchElement()
      • TestBenchElement

        protected TestBenchElement(org.openqa.selenium.WebElement webElement,
                                   TestBenchCommandExecutor commandExecutor)
    • Method Detail

      • init

        protected void init(org.openqa.selenium.WebElement element,
                            TestBenchCommandExecutor commandExecutor)

        TestBenchElement initialization function. If a subclass of TestBenchElement needs to run some initialization code, it should override init(), not this function.

        Parameters:

        element - WebElement to wrap

        commandExecutor - TestBenchCommandExecutor instance

      • isChrome

        protected boolean isChrome()

        Checks if the current test is running on Chrome.

        Returns:

        true if the test is running on Chrome, false otherwise

      • isIE

        protected boolean isIE()

        Checks if the current test is running on Internet Explorer.

        Returns:

        true if the test is running on Internet Explorer, false otherwise

      • isFirefox

        protected boolean isFirefox()

        Checks if the current test is running on Firefox.

        Returns:

        true if the test is running on Firefox, false otherwise

      • getCapabilities

        protected org.openqa.selenium.Capabilities getCapabilities()

        Returns information about current browser used

        Returns:

        information about current browser used

        See Also:

        Capabilities

      • init

        protected void init()

        This is run after initializing a TestBenchElement. This can be overridden in subclasses of TestBenchElement to run some initialization code.

      • getWrappedElement

        public org.openqa.selenium.WebElement getWrappedElement()

        Specified by:

        getWrappedElement in interface org.openqa.selenium.internal.WrapsElement

      • waitForVaadin

        protected void waitForVaadin()
      • scroll

        public void scroll(int scrollTop)

        Sets the number of pixels that an element's content is scrolled from the top.

        Parameters:

        scrollTop - value set to Element.scroll property

      • scrollLeft

        public void scrollLeft(int scrollLeft)

        Sets the number of pixels that an element's content is scrolled to the left.

        Parameters:

        scrollLeft - value set to Element.scrollLeft property

      • click

        public void click()

        Specified by:

        click in interface org.openqa.selenium.WebElement

      • submit

        public void submit()

        Specified by:

        submit in interface org.openqa.selenium.WebElement

      • sendKeys

        public void sendKeys(CharSequence... keysToSend)

        Specified by:

        sendKeys in interface org.openqa.selenium.WebElement

      • clear

        public void clear()

        Specified by:

        clear in interface org.openqa.selenium.WebElement

      • getTagName

        public String getTagName()

        Specified by:

        getTagName in interface org.openqa.selenium.WebElement

      • getAttribute

        public String getAttribute(String name)

        Specified by:

        getAttribute in interface org.openqa.selenium.WebElement

      • hasAttribute

        public boolean hasAttribute(String attribute)

        Checks if the given attribute is present on the element.

        Parameters:

        attribute - the name of the attribute

        Returns:

        true if the attribute is present, false otherwise

      • isSelected

        public boolean isSelected()

        Specified by:

        isSelected in interface org.openqa.selenium.WebElement

      • isEnabled

        public boolean isEnabled()

        Returns whether the Vaadin component, that this element represents, is enabled or not.

        Specified by:

        isEnabled in interface org.openqa.selenium.WebElement

        Returns:

        true if the component is enabled.

      • getText

        public String getText()

        Specified by:

        getText in interface org.openqa.selenium.WebElement

      • findElements

        public List<org.openqa.selenium.WebElement> findElements(org.openqa.selenium.By by)

        Specified by:

        findElements in interface org.openqa.selenium.SearchContext

        Specified by:

        findElements in interface org.openqa.selenium.WebElement

      • findElement

        public TestBenchElement findElement(org.openqa.selenium.By by)

        Specified by:

        findElement in interface org.openqa.selenium.SearchContext

        Specified by:

        findElement in interface org.openqa.selenium.WebElement

      • isDisplayed

        public boolean isDisplayed()

        Specified by:

        isDisplayed in interface org.openqa.selenium.WebElement

      • getLocation

        public org.openqa.selenium.Point getLocation()

        Specified by:

        getLocation in interface org.openqa.selenium.WebElement

      • getSize

        public org.openqa.selenium.Dimension getSize()

        Specified by:

        getSize in interface org.openqa.selenium.WebElement

      • getCssValue

        public String getCssValue(String propertyName)

        Specified by:

        getCssValue in interface org.openqa.selenium.WebElement

      • click

        public void click(int x,
                          int y,
                          org.openqa.selenium.Keys... modifiers)
      • doubleClick

        public void doubleClick()
      • contextClick

        public void contextClick()
      • getDriver

        public org.openqa.selenium.WebDriver getDriver()

        Description copied from interface: HasDriver

        Return the WebDriver instance associated with the implementing class instance. This can be simply the class itself re-cast as a WebDriver, or a reference to some WebDriver obtainable by any other means.

        Specified by:

        getDriver in interface HasDriver

        Returns:

        the contained WebDriver instance

      • getContext

        public org.openqa.selenium.SearchContext getContext()

        Returns this TestBenchElement cast to a SearchContext. Method provided for compatibility and consistency.

        Specified by:

        getContext in interface HasSearchContext

        Returns:

        a SearchContext instance

      • focus

        public void focus()

        Move browser focus to this Element

      • getScreenshotAs

        public <X> X getScreenshotAs(org.openqa.selenium.OutputType<X> target)
                              throws org.openqa.selenium.WebDriverException

        Specified by:

        getScreenshotAs in interface org.openqa.selenium.TakesScreenshot

        Throws:

        org.openqa.selenium.WebDriverException

      • getRect

        public org.openqa.selenium.Rectangle getRect()

        Specified by:

        getRect in interface org.openqa.selenium.WebElement

      • getClassNames

        public Set<String> getClassNames()

        Gets all the class names set for this element.

        Returns:

        a set of class names

      • hasClassName

        public boolean hasClassName(String className)

        Checks if this element has the given class name.

        Matches only full class names, i.e. has ("foo") does not match class="foobar bafoo"

        Parameters:

        className - the class name to check for

        Returns:

        true if the element has the given class name, false otherwise

      • hashCode

        public int hashCode()

        Overrides:

        hashCode in class Object

      • compareScreen

        public boolean compareScreen(String referenceId)
                              throws IOException

        Description copied from interface: CanCompareScreenshots

        Tests that a screen shot is equal to the specified reference image. The comparison tolerance can be specified by setting the com.vaadin.testbench.block.error system property to a value between 0 and 1, where 0 == no changes are accepted and 1 == big changes are accepted. Note that specifying 1 doesn't mean that any reference image is accepted.

        Specified by:

        compareScreen in interface CanCompareScreenshots

        Parameters:

        referenceId - the ID of the reference image

        Returns:

        true if the screenshot is considered equal to the reference image, false otherwise.

        Throws:

        IOException - if there was a problem accessing the reference image

      • compareScreen

        public boolean compareScreen(File reference)
                              throws IOException

        Description copied from interface: CanCompareScreenshots

        Tests that a screen shot is equal to the specified reference image. The comparison tolerance can be specified by setting the com.vaadin.testbench.block.error system property to a value between 0 and 1, where 0 == no changes are accepted and 1 == all changes are accepted.

        Specified by:

        compareScreen in interface CanCompareScreenshots

        Parameters:

        reference - the reference image file

        Returns:

        true if the screenshot is considered equal to the reference image, false otherwise.

        Throws:

        IOException - if there was a problem accessing the reference image

      • compareScreen

        public boolean compareScreen(BufferedImage reference,
                                     String referenceName)
                              throws IOException

        Description copied from interface: CanCompareScreenshots

        Tests that a screen shot is equal to the specified reference image. The comparison tolerance can be specified by setting the com.vaadin.testbench.block.error system property to a value between 0 and 1, where 0 == no changes are accepted and 1 == all changes are accepted.

        Specified by:

        compareScreen in interface CanCompareScreenshots

        Parameters:

        reference - the reference image

        referenceName - the filename of the reference image. Used when writing the error files.

        Returns:

        true if the screenshot is considered equal to the reference image, false otherwise.

        Throws:

        IOException - if there was a problem accessing the reference image

      • scrollIntoView

        public void scrollIntoView()

        Scrolls the element into the visible area of the browser window

      • waitUntil

        protected <T> T waitUntil(org.openqa.selenium.support.ui.ExpectedCondition<T> condition,
                                  long timeoutInSeconds)

        Waits the given number of seconds for the given condition to become neither null nor false. NotFoundExceptions are ignored by default.

        Use e.g. as waitUntil(ExpectedConditions.presenceOfElementLocated(by), 10);

        Parameters:

        condition - Models a condition that might reasonably be expected to eventually evaluate to something that is neither null nor false.

        timeoutInSeconds - The timeout in seconds for the wait.

        Returns:

        The condition's return value if it returned something different from null or false before the timeout expired.

        Throws:

        org.openqa.selenium.TimeoutException - If the timeout expires.

        See Also:

        FluentWait.until(java.util.function.Function<? super T, V>), ExpectedCondition

      • waitUntil

        protected <T> T waitUntil(org.openqa.selenium.support.ui.ExpectedCondition<T> condition)

        Waits up to 10 seconds for the given condition to become neither null nor false. NotFoundExceptions are ignored by default.

        Use e.g. as waitUntil(ExpectedConditions.presenceOfElementLocated(by));

        Parameters:

        condition - Models a condition that might reasonably be expected to eventually evaluate to something that is neither null nor false.

        Returns:

        The condition's return value if it returned something different from null or false before the timeout expired.

        Throws:

        org.openqa.selenium.TimeoutException - If 10 seconds passed.

        See Also:

        FluentWait.until(java.util.function.Function<? super T, V>), ExpectedCondition

      • getPropertyString

        public String getPropertyString(String... propertyNames)

        Description copied from interface: HasPropertySettersGetters

        Gets a JavaScript property of the given element as a string.

        Specified by:

        getPropertyString in interface HasPropertySettersGetters

        Parameters:

        propertyNames - the name of on or more properties, forming a property chain of type property1.property2.property3

      • getPropertyBoolean

        public Boolean getPropertyBoolean(String... propertyNames)

        Description copied from interface: HasPropertySettersGetters

        Gets a JavaScript property of the given element as a boolean.

        Specified by:

        getPropertyBoolean in interface HasPropertySettersGetters

        Parameters:

        propertyNames - the name of on or more properties, forming a property chain of type property1.property2.property3

      • getPropertyDouble

        public Double getPropertyDouble(String... propertyNames)

        Description copied from interface: HasPropertySettersGetters

        Gets a JavaScript property of the given element as a double.

        Specified by:

        getPropertyDouble in interface HasPropertySettersGetters

        Parameters:

        propertyNames - the name of on or more properties, forming a property chain of type property1.property2.property3

      • getPropertyInteger

        public Integer getPropertyInteger(String... propertyNames)

        Description copied from interface: HasPropertySettersGetters

        Gets a JavaScript property of the given element as an integer.

        Specified by:

        getPropertyInteger in interface HasPropertySettersGetters

        Parameters:

        propertyNames - the name of on or more properties, forming a property chain of type property1.property2.property3

      • getProperty

        public Object getProperty(String... propertyNames)

        Description copied from interface: HasPropertySettersGetters

        Gets a JavaScript property of the given element.

        The return value needs to be cast manually to the correct type.

        Specified by:

        getProperty in interface HasPropertySettersGetters

        Parameters:

        propertyNames - the name of on or more properties, forming a property chain of type property1.property2.property3

      • executeScript

        protected Object executeScript(String script,
                                       Object... args)

        Executes the given JavaScript in the context of the currently selected frame or window. The script fragment provided will be executed as the body of an anonymous function.

        This method wraps any returned WebElement as TestBenchElement.

        Parameters:

        script - the script to execute

        args - the arguments, available in the script as arguments[0]...arguments[N]

        Returns:

        whatever JavascriptExecutor.executeScript(String, Object...) returns

        Throws:

        UnsupportedOperationException - if the underlying driver does not support JavaScript execution

        See Also:

        JavascriptExecutor.executeScript(String, Object...)

      • callFunction

        public Object callFunction(String methodName,
                                   Object... args)

        Description copied from interface: HasCallFunction

        Invoke the given method on this element using the given arguments as arguments to the method.

        Specified by:

        callFunction in interface HasCallFunction

        Parameters:

        methodName - the method to invoke

        args - the arguments to pass to the method

        Returns:

        the value returned by the method

      • dispatchEvent

        public void dispatchEvent(String eventType)

        Dispatches (fires) a custom event of the given type on the element.

        The event is created without any parameters.

        Parameters:

        eventType - the type of custom event to dispatch