Class ElementActions
java.lang.Object
com.shaft.driver.internal.FluentWebDriverAction
com.shaft.gui.element.ElementActions
- Direct Known Subclasses:
Actions
Provides high-level actions for interacting with web and mobile elements
such as clicking, typing, selecting, dragging, and retrieving element state.
This class extends FluentWebDriverAction and supports method
chaining via the and() connector. Prefer using
Actions (returned by
SHAFT.GUI.WebDriver.element()) for new tests.
Usage example:
driver.element().click(By.id("submit"))
.and().element().type(By.id("name"), "John")
.and().assertThat(By.id("result")).text().contains("Success");
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionElementActions(DriverFactoryHelper helper) ElementActions(org.openqa.selenium.WebDriver driver) ElementActions(org.openqa.selenium.WebDriver driver, boolean isSilent) -
Method Summary
Modifier and TypeMethodDescriptionand()Returns this instance to allow fluent (method-chaining) syntax between successive actions.assertThat(org.openqa.selenium.By elementLocator) Starts a hard-assertion chain on the target element.captureScreenshot(org.openqa.selenium.By elementLocator) Captures a screenshot of the specified element and attaches it to the test report.clear(org.openqa.selenium.By elementLocator) Clears the value of the target element.click(org.openqa.selenium.By elementLocator) Clicks on a certain element using Selenium WebDriver, or JavaScriptclickAndHold(org.openqa.selenium.By elementLocator) Waits for the element to be clickable, and then clicks and holds it.clickUsingJavascript(org.openqa.selenium.By elementLocator) Clicks on certain element using javaScript onlydoubleClick(org.openqa.selenium.By elementLocator) Double-clicks on an element using Selenium WebDriver's Actions LibrarydragAndDrop(org.openqa.selenium.By sourceElementLocator, org.openqa.selenium.By destinationElementLocator) Drags the source element and drops it onto the destination elementdragAndDropByOffset(org.openqa.selenium.By sourceElementLocator, int xOffset, int yOffset) Drags the source element and drops it onto the determined offsetexecuteNativeMobileCommand(String command, Map<String, String> parameters) This is a generic method to enable the execution of the native mobile commands found herein: appium.iogets the current frameintgetElementsCount(org.openqa.selenium.By elementLocator) Returns the number of elements on the current page that match the given locator.getTableRowsData(org.openqa.selenium.By tableLocator) Get any simple table rows' data that has thead which include all the column labels and tbody which includes all table datahover(org.openqa.selenium.By elementLocator) Hovers over target element.hoverAndClick(List<org.openqa.selenium.By> hoverElementLocators, org.openqa.selenium.By clickableElementLocator) Hovers over the hoverElements in sequence then clicks the clickableElementscrollToElement(org.openqa.selenium.By elementLocator) If the element is outside the viewport, scrolls the bottom of the element to the bottom of the viewport.Selects an element from a dropdown list using its displayed text or attribute ValuesetValueUsingJavaScript(org.openqa.selenium.By elementLocator, String value) Used to SetProperty value for an element (hidden or visible) using javascriptsubmitFormUsingJavaScript(org.openqa.selenium.By elementLocator) Used to submit a form using javascriptSwitches focus to default content, is mainly used in coordination withswitchToIframe(By)to exit any iFrame layer and go back to the main pageswitchToIframe(org.openqa.selenium.By elementLocator) Switches focus to a certain iFrame, is mainly used in coordination withswitchToDefaultContent()to navigate inside any iFrame layer and go back to the main pagetype(org.openqa.selenium.By elementLocator, CharSequence... text) Types the provided text into the target element, replacing any existing value.typeAppend(org.openqa.selenium.By elementLocator, CharSequence... text) Appends the required string into the target element, regardless of the current text value.typeFileLocationForUpload(org.openqa.selenium.By elementLocator, String filePath) ValidationEnums the required file path into an input[type='file'] button, to successfully upload the target file.typeSecure(org.openqa.selenium.By elementLocator, CharSequence... text) Checks if there is any text in an element, clears it, then types the required string into the target element.verifyThat(org.openqa.selenium.By elementLocator) Starts a soft-assertion (verification) chain on the target element.Methods inherited from class FluentWebDriverAction
alert, browser, element, initialize, initialize, initialize, initialize, performAlertAction, performBrowserAction, performElementAction, performTouchAction, touch
-
Constructor Details
-
ElementActions
public ElementActions() -
ElementActions
public ElementActions(org.openqa.selenium.WebDriver driver) -
ElementActions
public ElementActions(org.openqa.selenium.WebDriver driver, boolean isSilent) -
ElementActions
-
-
Method Details
-
and
Description copied from class:FluentWebDriverActionReturns this instance to allow fluent (method-chaining) syntax between successive actions. Using.and()improves readability by making multi-step test sequences read like natural language.Example:
driver.element().type(searchBox, "query") .and().browser().captureScreenshot();- Overrides:
andin classFluentWebDriverAction- Returns:
- this
FluentWebDriverActioninstance, enabling continued method chaining
-
assertThat
Starts a hard-assertion chain on the target element. The test fails immediately when the assertion condition is not met.- Parameters:
elementLocator- the locator of the element under test (e.g.By.id("result"))- Returns:
- a
WebDriverElementValidationsBuilderfor chaining element assertions - See Also:
-
verifyThat
Starts a soft-assertion (verification) chain on the target element. Failures are collected and reported at the end of the test rather than stopping execution immediately.- Parameters:
elementLocator- the locator of the element under test (e.g.By.id("result"))- Returns:
- a
WebDriverElementValidationsBuilderfor chaining element verifications - See Also:
-
getElementsCount
public int getElementsCount(org.openqa.selenium.By elementLocator) Returns the number of elements on the current page that match the given locator.- Parameters:
elementLocator- the locator used to find elements (e.g.By.cssSelector(".item"))- Returns:
- the count of matching elements, or
0if none are found - See Also:
-
executeNativeMobileCommand
This is a generic method to enable the execution of the native mobile commands found herein: appium.ioNote: This method does no validation on the output of the executed JavaScript
- Parameters:
command- the desired mobile command to be executed. e.g., "mobile: scroll"parameters- a map of the key, value parameters for this command. e.g., ImmutableMap.of("direction", "down")- Returns:
- a self-reference to be used to chain actions
-
click
Clicks on a certain element using Selenium WebDriver, or JavaScript- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
clickUsingJavascript
Clicks on certain element using javaScript only- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
scrollToElement
If the element is outside the viewport, scrolls the bottom of the element to the bottom of the viewport.- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
clickAndHold
Waits for the element to be clickable, and then clicks and holds it.- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
doubleClick
Double-clicks on an element using Selenium WebDriver's Actions Library- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
dragAndDrop
public Actions dragAndDrop(org.openqa.selenium.By sourceElementLocator, org.openqa.selenium.By destinationElementLocator) Drags the source element and drops it onto the destination element- Parameters:
sourceElementLocator- the locator of the source webElement that should be dragged under test (By xpath, id, selector, name ...etc.)destinationElementLocator- the locator of the target webElement that should receive the dropped source element under test (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
dragAndDropByOffset
public Actions dragAndDropByOffset(org.openqa.selenium.By sourceElementLocator, int xOffset, int yOffset) Drags the source element and drops it onto the determined offset- Parameters:
sourceElementLocator- the locator of the source webElement that should be dragged under test (By xpath, id, selector, name ...etc.)xOffset- the horizontal offset by which the element should be movedyOffset- the vertical offset by which the element should be moved- Returns:
- a self-reference to be used to chain actions
-
hover
Hovers over target element. If you want to hover on a webElement to expose another webElement and click on it, use hoverAndClick instead for a more reliable result.- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
hoverAndClick
public Actions hoverAndClick(List<org.openqa.selenium.By> hoverElementLocators, org.openqa.selenium.By clickableElementLocator) Hovers over the hoverElements in sequence then clicks the clickableElement- Parameters:
hoverElementLocators- the list of locators of the webElements under test upon which the hover action will be performed in sequence (By xpath, id, selector, name ...etc.)clickableElementLocator- the locator of the webElement under test upon which the click action will be performed (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
select
Selects an element from a dropdown list using its displayed text or attribute Value- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)valueOrVisibleText- the text of the choice that you need to select from the target dropDown menu or the string value of attribute "value"- Returns:
- a self-reference to be used to chain actions
-
setValueUsingJavaScript
Used to SetProperty value for an element (hidden or visible) using javascript- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)value- the desired value that should be SetProperty for the target element- Returns:
- a self-reference to be used to chain actions
-
submitFormUsingJavaScript
Used to submit a form using javascript- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
switchToIframe
Switches focus to a certain iFrame, is mainly used in coordination withswitchToDefaultContent()to navigate inside any iFrame layer and go back to the main page- Parameters:
elementLocator- the locator of the iFrame webElement under test (By xpath, id, selector, name ...etc.)- Returns:
- a self-reference to be used to chain actions
-
switchToDefaultContent
Switches focus to default content, is mainly used in coordination withswitchToIframe(By)to exit any iFrame layer and go back to the main page- Returns:
- a self-reference to be used to chain actions
-
getCurrentFrame
-
type
Types the provided text into the target element, replacing any existing value.- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name, etc.)text- one or moreCharSequencevalues (includingKeys) to be typed into the target webElement- Returns:
- a self-reference to be used to chain actions
-
clear
Clears the value of the target element.- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name, etc.)- Returns:
- a self-reference to be used to chain actions
-
typeAppend
Appends the required string into the target element, regardless of the current text value.- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)text- the target text that needs to be appended into the target webElement- Returns:
- a self-reference to be used to chain actions
-
typeFileLocationForUpload
ValidationEnums the required file path into an input[type='file'] button, to successfully upload the target file.- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)filePath- the full path to the file that needs to be uploaded, it can be absolute or relative path, Engine will detect that.- Returns:
- a self-reference to be used to chain actions.
-
typeSecure
Checks if there is any text in an element, clears it, then types the required string into the target element. Obfuscates the written text in the output report. This action should be used for writing passwords and secure text.- Parameters:
elementLocator- the locator of the webElement under test (By xpath, id, selector, name ...etc.)text- the target text that needs to be typed into the target webElement- Returns:
- a self-reference to be used to chain actions
-
getTableRowsData
Get any simple table rows' data that has thead which include all the column labels and tbody which includes all table data- Parameters:
tableLocator- the locator of the table which should be a table tag- Returns:
- List of Map format and each Map Object follows the following format (Key:column label, value: cell data)
-
captureScreenshot
-