com.vaadin.testbench.
Class TestBenchElement
All Implemented Interfaces:
CanCompareScreenshots
, HasCallFunction
, HasDriver
, HasElementQuery
, HasPropertySettersGetters
, HasSearchContext
, HasTestBenchCommandExecutor
, org.openqa.selenium.SearchContext
, org.openqa.selenium.TakesScreenshot
, org.openqa.selenium.WebElement
, org.openqa.selenium.WrapsElement
Direct Known Subclasses:
AccordionElement
, AnchorElement
, AppLayoutElement
, AvatarElement
, AvatarGroupElement
, BigDecimalFieldElement
, BoardElement
, ButtonElement
, ChartElement
, CheckboxElement
, CheckboxGroupElement
, ComboBoxElement
, ConfirmDialogElement
, ContextMenuElement
, CookieConsentElement
, CrudElement
, CustomFieldElement
, DashboardElement
, DashboardSectionElement
, DashboardWidgetElement
, DatePickerElement
, DatePickerElement.MonthCalendarElement
, DatePickerElement.OverlayContentElement
, DatePickerElement.WeekdayElement
, DateTimePickerElement
, DescriptionListElement
, DetailsElement
, DialogElement
, DivElement
, DrawerToggleElement
, EmailFieldElement
, EmphasisElement
, FormLayoutElement
, GridElement
, GridProElement
, GridTHTDElement
, GridTHTDElement
, GridTRElement
, GridTRElement
, H1Element
, H2Element
, H3Element
, H4Element
, H5Element
, H6Element
, HorizontalLayoutElement
, HrElement
, IconElement
, ImageElement
, InputTextElement
, IntegerFieldElement
, LabelElement
, ListBoxElement
, ListItemElement
, LoginFormElement
, LoginOverlayElement
, MenuBarElement
, MessageElement
, MessageInputElement
, MessageListElement
, MultiSelectComboBoxElement
, NativeButtonElement
, NativeDetailsElement
, NativeLabelElement
, NativeTableBodyElement
, NativeTableCaptionElement
, NativeTableCellElement
, NativeTableElement
, NativeTableFooterElement
, NativeTableHeaderCellElement
, NativeTableHeaderElement
, NativeTableRowElement
, NotificationElement
, NumberFieldElement
, OrderedListElement
, ParagraphElement
, PasswordFieldElement
, PopoverElement
, PreElement
, ProgressBarElement
, RadioButtonElement
, RadioButtonGroupElement
, RangeInputElement
, RichTextEditorElement
, RowElement
, ScrollerElement
, SelectElement
, SelectElement
, SelectElement.ItemElement
, SideNavElement
, SideNavItemElement
, SpanElement
, SplitLayoutElement
, TabElement
, TabsElement
, TabSheetElement
, TextAreaElement
, TextFieldElement
, TimePickerElement
, TimePickerElement.TimePickerComboBoxElement
, TimePickerElement.TimePickerOverlayElement
, UnorderedListElement
, UploadElement
, VerticalLayoutElement
, VirtualListElement
TestBenchElement is a WebElement wrapper. It provides Vaadin specific helper functionality. TestBenchElements are created when you search for elements from TestBenchTestCase or a context relative search from TestBenchElement.
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
protected
TestBenchElement
(org.openqa.selenium.WebElement webElement, TestBenchCommandExecutor commandExecutor) -
Method Summary
Modifier and TypeMethodDescriptioncallFunction
(String methodName, Object... args) Invoke the given method on this element using the given arguments as arguments to the method.
void
clear()
void
click()
void
click
(int x, int y, org.openqa.selenium.Keys... modifiers) boolean
compareScreen
(BufferedImage reference, String referenceName) Tests that a screen shot is equal to the specified reference image.
boolean
compareScreen
(File reference) Tests that a screen shot is equal to the specified reference image.
boolean
compareScreen
(String referenceId) Tests that a screen shot is equal to the specified reference image.
void
void
dispatchEvent
(String eventType) Dispatches (fires) a custom event of the given type on the element.
void
dispatchEvent
(String eventType, Map<String, Object> customEventInit) Dispatches (fires) a custom event of the given type on the element with the given properties
void
boolean
protected Object
executeScript
(String script, Object... args) Executes the given JavaScript in the context of the currently selected frame or window.
findElement
(org.openqa.selenium.By by) List<org.openqa.selenium.WebElement>
findElements
(org.openqa.selenium.By by) void
focus()
Move browser focus to this Element
getAttribute
(String name) protected org.openqa.selenium.Capabilities
Returns information about current browser used
Gets all the class names set for this element.
Return a reference to the related
TestBenchCommandExecutor
instance.org.openqa.selenium.SearchContext
Returns this TestBenchElement cast to a SearchContext.
getCssValue
(String propertyName) org.openqa.selenium.WebDriver
Return the
WebDriver
instance associated with the implementing class instance.org.openqa.selenium.Point
getProperty
(String... propertyNames) Gets a JavaScript property of the given element.
getPropertyBoolean
(String... propertyNames) Gets a JavaScript property of the given element as a boolean.
getPropertyDouble
(String... propertyNames) Gets a JavaScript property of the given element as a double.
getPropertyElement
(String... propertyNames) Gets a JavaScript property of the given element as a DOM element.
getPropertyElements
(String... propertyNames) Gets a JavaScript property of the given element as a list of DOM elements.
getPropertyInteger
(String... propertyNames) Gets a JavaScript property of the given element as an integer.
getPropertyString
(String... propertyNames) Gets a JavaScript property of the given element as a string.
org.openqa.selenium.Rectangle
getRect()
<X> X
getScreenshotAs
(org.openqa.selenium.OutputType<X> target) org.openqa.selenium.Dimension
getSize()
getText()
org.openqa.selenium.WebElement
boolean
hasAttribute
(String attribute) Checks if the given attribute is present on the element.
boolean
hasClassName
(String className) Checks if this element has the given class name.
int
hashCode()
protected void
init()
This is run after initializing a TestBenchElement.
protected void
init
(org.openqa.selenium.WebElement element, TestBenchCommandExecutor commandExecutor) TestBenchElement initialization function.
protected boolean
isChrome()
Checks if the current test is running on Chrome.
boolean
boolean
Returns whether the Vaadin component, that this element represents, is enabled or not.
protected boolean
Checks if the current test is running on Firefox.
boolean
void
scroll
(int scrollTop) Sets the number of pixels that an element's content is scrolled from the top.
void
Scrolls the element into the visible area of the browser window
void
scrollLeft
(int scrollLeft) Sets the number of pixels that an element's content is scrolled to the left.
void
sendKeys
(CharSequence... keysToSend) void
setProperty
(String name, Boolean value) Sets a JavaScript property of the given element.
void
setProperty
(String name, Double value) Sets a JavaScript property of the given element.
void
setProperty
(String name, Integer value) Sets a JavaScript property of the given element.
void
setProperty
(String name, String value) Sets a JavaScript property of the given element.
void
submit()
protected void
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.
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.
<T extends TestBenchElement>
Tprotected static TestBenchElement
wrapElement
(org.openqa.selenium.WebElement element, TestBenchCommandExecutor commandExecutor) protected static List<TestBenchElement>
wrapElements
(List<org.openqa.selenium.WebElement> elements, TestBenchCommandExecutor commandExecutor) Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.vaadin.testbench.HasElementQuery
$, $
Methods inherited from interface org.openqa.selenium.WebElement
getAccessibleName, getAriaRole, getDomAttribute, getDomProperty, getShadowRoot
-
Constructor Details
-
TestBenchElement
protected TestBenchElement() -
TestBenchElement
protected TestBenchElement(org.openqa.selenium.WebElement webElement, TestBenchCommandExecutor commandExecutor)
-
-
Method Details
-
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 wrapcommandExecutor
- 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 -
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
Capabilities
Returns:
information about current browser used
See Also:
-
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 interfaceorg.openqa.selenium.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 interfaceorg.openqa.selenium.WebElement
-
submit
public void submit()Specified by:
submit
in interfaceorg.openqa.selenium.WebElement
-
sendKeys
Specified by:
sendKeys
in interfaceorg.openqa.selenium.WebElement
-
clear
public void clear()Specified by:
clear
in interfaceorg.openqa.selenium.WebElement
-
getTagName
Specified by:
getTagName
in interfaceorg.openqa.selenium.WebElement
-
getAttribute
Specified by:
getAttribute
in interfaceorg.openqa.selenium.WebElement
-
hasAttribute
Checks if the given attribute is present on the element.
Parameters:
attribute
- the name of the attributeReturns:
true
if the attribute is present,false
otherwise -
isSelected
public boolean isSelected()Specified by:
isSelected
in interfaceorg.openqa.selenium.WebElement
-
isEnabled
public boolean isEnabled()Returns whether the Vaadin component, that this element represents, is enabled or not.
Specified by:
isEnabled
in interfaceorg.openqa.selenium.WebElement
Returns:
true if the component is enabled.
-
getText
Specified by:
getText
in interfaceorg.openqa.selenium.WebElement
-
findElements
Specified by:
findElements
in interfaceorg.openqa.selenium.SearchContext
Specified by:
findElements
in interfaceorg.openqa.selenium.WebElement
-
findElement
Specified by:
findElement
in interfaceorg.openqa.selenium.SearchContext
Specified by:
findElement
in interfaceorg.openqa.selenium.WebElement
-
isDisplayed
public boolean isDisplayed()Specified by:
isDisplayed
in interfaceorg.openqa.selenium.WebElement
-
getLocation
public org.openqa.selenium.Point getLocation()Specified by:
getLocation
in interfaceorg.openqa.selenium.WebElement
-
getSize
public org.openqa.selenium.Dimension getSize()Specified by:
getSize
in interfaceorg.openqa.selenium.WebElement
-
getCssValue
Specified by:
getCssValue
in interfaceorg.openqa.selenium.WebElement
-
click
public void click(int x, int y, org.openqa.selenium.Keys... modifiers) -
doubleClick
public void doubleClick() -
contextClick
public void contextClick() -
wrap
-
getCommandExecutor
Description copied from interface:
HasTestBenchCommandExecutor
Return a reference to the related
TestBenchCommandExecutor
instance.Specified by:
getCommandExecutor
in interfaceHasTestBenchCommandExecutor
Returns:
the
TestBenchCommandExecutor
instance -
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. -
getContext
public org.openqa.selenium.SearchContext getContext()Returns this TestBenchElement cast to a SearchContext. Method provided for compatibility and consistency.
Specified by:
getContext
in interfaceHasSearchContext
Returns:
a
SearchContext
instance -
focus
public void focus()Move browser focus to this Element
-
wrapElements
protected static List<TestBenchElement> wrapElements(List<org.openqa.selenium.WebElement> elements, TestBenchCommandExecutor commandExecutor) -
wrapElement
protected static TestBenchElement wrapElement(org.openqa.selenium.WebElement element, TestBenchCommandExecutor commandExecutor) -
getScreenshotAs
public <X> X getScreenshotAs(org.openqa.selenium.OutputType<X> target) throws org.openqa.selenium.WebDriverException Specified by:
getScreenshotAs
in interfaceorg.openqa.selenium.TakesScreenshot
Throws:
org.openqa.selenium.WebDriverException
-
getRect
public org.openqa.selenium.Rectangle getRect()Specified by:
getRect
in interfaceorg.openqa.selenium.WebElement
-
getClassNames
Gets all the class names set for this element.
Returns:
a set of class names
-
hasClassName
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 forReturns:
true
if the element has the given class name,false
otherwise -
equals
-
hashCode
public int hashCode() -
compareScreen
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 interfaceCanCompareScreenshots
Parameters:
referenceId
- the ID of the reference imageReturns:
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
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 interfaceCanCompareScreenshots
Parameters:
reference
- the reference image fileReturns:
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
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 interfaceCanCompareScreenshots
Parameters:
reference
- the reference imagereferenceName
- 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.
NotFoundException
s are ignored by default.Use e.g. as
waitUntil(ExpectedConditions.presenceOfElementLocated(by), 10);
FluentWait.until(java.util.function.Function<? super T, V>)
ExpectedCondition
Type Parameters:
T
- The return type of theExpectedCondition
and this methodParameters:
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:
-
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.
NotFoundException
s are ignored by default.Use e.g. as
waitUntil(ExpectedConditions.presenceOfElementLocated(by));
FluentWait.until(java.util.function.Function<? super T, V>)
ExpectedCondition
Type Parameters:
T
- The return type of theExpectedCondition
and this methodParameters:
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:
-
setProperty
Description copied from interface:
HasPropertySettersGetters
Sets a JavaScript property of the given element.
Specified by:
setProperty
in interfaceHasPropertySettersGetters
Parameters:
name
- the name of the propertyvalue
- the value to set -
setProperty
Description copied from interface:
HasPropertySettersGetters
Sets a JavaScript property of the given element.
Specified by:
setProperty
in interfaceHasPropertySettersGetters
Parameters:
name
- the name of the propertyvalue
- the value to set -
setProperty
Description copied from interface:
HasPropertySettersGetters
Sets a JavaScript property of the given element.
Specified by:
setProperty
in interfaceHasPropertySettersGetters
Parameters:
name
- the name of the propertyvalue
- the value to set -
setProperty
Description copied from interface:
HasPropertySettersGetters
Sets a JavaScript property of the given element.
Specified by:
setProperty
in interfaceHasPropertySettersGetters
Parameters:
name
- the name of the propertyvalue
- the value to set -
getPropertyString
Description copied from interface:
HasPropertySettersGetters
Gets a JavaScript property of the given element as a string.
Specified by:
getPropertyString
in interfaceHasPropertySettersGetters
Parameters:
propertyNames
- the name of on or more properties, forming a property chain of typeproperty1.property2.property3
Returns:
the value of the property
-
getPropertyBoolean
Description copied from interface:
HasPropertySettersGetters
Gets a JavaScript property of the given element as a boolean.
Specified by:
getPropertyBoolean
in interfaceHasPropertySettersGetters
Parameters:
propertyNames
- the name of on or more properties, forming a property chain of typeproperty1.property2.property3
Returns:
the value of the property
-
getPropertyElement
Description copied from interface:
HasPropertySettersGetters
Gets a JavaScript property of the given element as a DOM element.
Specified by:
getPropertyElement
in interfaceHasPropertySettersGetters
Parameters:
propertyNames
- the name of on or more properties, forming a property chain of typeproperty1.property2.property3
Returns:
the value of the property
-
getPropertyElements
Description copied from interface:
HasPropertySettersGetters
Gets a JavaScript property of the given element as a list of DOM elements.
Specified by:
getPropertyElements
in interfaceHasPropertySettersGetters
Parameters:
propertyNames
- the name of on or more properties, forming a property chain of typeproperty1.property2.property3
Returns:
the value of the property
-
getPropertyDouble
Description copied from interface:
HasPropertySettersGetters
Gets a JavaScript property of the given element as a double.
Specified by:
getPropertyDouble
in interfaceHasPropertySettersGetters
Parameters:
propertyNames
- the name of on or more properties, forming a property chain of typeproperty1.property2.property3
Returns:
the value of the property
-
getPropertyInteger
Description copied from interface:
HasPropertySettersGetters
Gets a JavaScript property of the given element as an integer.
Specified by:
getPropertyInteger
in interfaceHasPropertySettersGetters
Parameters:
propertyNames
- the name of on or more properties, forming a property chain of typeproperty1.property2.property3
Returns:
the value of the property
-
getProperty
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 interfaceHasPropertySettersGetters
Parameters:
propertyNames
- the name of on or more properties, forming a property chain of typeproperty1.property2.property3
Returns:
the value of the property
-
executeScript
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
asTestBenchElement
.JavascriptExecutor.executeScript(String, Object...)
Parameters:
script
- the script to executeargs
- the arguments, available in the script asarguments[0]...arguments[N]
Returns:
whatever
JavascriptExecutor.executeScript(String, Object...)
returnsThrows:
UnsupportedOperationException
- if the underlying driver does not support JavaScript executionSee Also:
-
callFunction
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 interfaceHasCallFunction
Parameters:
methodName
- the method to invokeargs
- the arguments to pass to the methodReturns:
the value returned by the method
-
dispatchEvent
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 -
dispatchEvent
Dispatches (fires) a custom event of the given type on the element with the given properties
Parameters:
eventType
- the type of custom event to dispatchcustomEventInit
- map with properties and values that will be used to initialize the event
-