Class ElementService

java.lang.Object
com.shaft.mcp.ElementService

@Service public class ElementService extends Object
MCP-safe element actions. Sensitive values are returned only to direct callers and are never logged.
  • Constructor Details

    • ElementService

      public ElementService()
  • Method Details

    • hover

      @Tool(name="element_hover", description="hovers over an element") public void hover(locatorStrategy locatorStrategy, String locatorValue)
      Hovers over an element.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
    • click

      @Tool(name="element_click", description="clicks an element") public void click(locatorStrategy locatorStrategy, String locatorValue)
      Clicks an element.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
    • clickSemantic

      public void clickSemantic(String elementName)
      Clicks an element using SHAFT semantic locator behavior.
      Parameters:
      elementName - semantic element name
    • clickUsingAI

      @Deprecated(forRemoval=false) public void clickUsingAI(String elementName)
      Deprecated.
      Compatibility alias for older clients; not exposed as an MCP tool.
      Parameters:
      elementName - semantic element name
    • clickUsingJavaScript

      @Tool(name="element_click_js", description="clicks an element using JavaScript") public void clickUsingJavaScript(locatorStrategy locatorStrategy, String locatorValue)
      Clicks an element using JavaScript.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
    • doubleClick

      @Tool(name="element_double_click", description="double clicks an element") public void doubleClick(locatorStrategy locatorStrategy, String locatorValue)
      Double-clicks an element.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
    • clickAndHold

      @Tool(name="element_click_and_hold", description="clicks and holds an element") public void clickAndHold(locatorStrategy locatorStrategy, String locatorValue)
      Clicks and holds an element.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
    • type

      @Tool(name="element_type", description="types value to an element") public void type(locatorStrategy locatorStrategy, String locatorValue, CharSequence... textValue)
      Types text into an element.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      textValue - text values
    • appendText

      @Tool(name="element_append_text", description="appends text to an element") public void appendText(locatorStrategy locatorStrategy, String locatorValue, CharSequence... textValue)
      Appends text to an element.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      textValue - text values
    • typeSemantic

      public void typeSemantic(String elementName, CharSequence... textValue)
      Types text using SHAFT semantic locator behavior.
      Parameters:
      elementName - semantic element name
      textValue - text values
    • typeUsingAI

      @Deprecated(forRemoval=false) public void typeUsingAI(String elementName, CharSequence... textValue)
      Deprecated.
      Compatibility alias for older clients; not exposed as an MCP tool.
      Parameters:
      elementName - semantic element name
      textValue - text values
    • setValueUsingJavaScript

      @Tool(name="element_set_value_js", description="sets value to an element using JavaScript") public void setValueUsingJavaScript(locatorStrategy locatorStrategy, String locatorValue, String textValue)
      Sets an element value using JavaScript.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      textValue - value
    • clear

      @Tool(name="element_clear", description="clears text from an element") public void clear(locatorStrategy locatorStrategy, String locatorValue)
      Clears an element.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
    • dropFileToUpload

      @Tool(name="element_drop_file_to_upload", description="drops file to an element to upload") public void dropFileToUpload(locatorStrategy locatorStrategy, String locatorValue, String filePath)
      Drops a file onto an upload element.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      filePath - local file path
    • dragAndDrop

      @Tool(name="element_drag_and_drop", description="drags and drops an element from source to target") public void dragAndDrop(locatorStrategy sourceLocatorStrategy, String sourceLocatorValue, locatorStrategy targetLocatorStrategy, String targetLocatorValue)
      Drags one element to another.
      Parameters:
      sourceLocatorStrategy - source locator strategy
      sourceLocatorValue - source locator value
      targetLocatorStrategy - target locator strategy
      targetLocatorValue - target locator value
    • dragAndDropByOffset

      @Tool(name="element_drag_and_drop_by_offset", description="drags and drops an element by offset") public void dragAndDropByOffset(locatorStrategy locatorStrategy, String locatorValue, int xOffset, int yOffset)
      Drags an element by an offset.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      xOffset - horizontal offset
      yOffset - vertical offset
    • getText

      public String getText(locatorStrategy locatorStrategy, String locatorValue)
      Gets text for direct Java callers. Not exposed as an MCP tool because text may be sensitive.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      Returns:
      element text
    • getDomAttribute

      public String getDomAttribute(locatorStrategy locatorStrategy, String locatorValue, String domAttributeName)
      Gets a DOM attribute for direct Java callers. Not exposed as an MCP tool.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      domAttributeName - attribute name
      Returns:
      attribute value
    • getDomProperty

      public String getDomProperty(locatorStrategy locatorStrategy, String locatorValue, String domPropertyName)
      Gets a DOM property for direct Java callers. Not exposed as an MCP tool.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      domPropertyName - property name
      Returns:
      property value
    • getCssValue

      public String getCssValue(locatorStrategy locatorStrategy, String locatorValue, String cssPropertyName)
      Gets a CSS value for direct Java callers. Not exposed as an MCP tool.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      cssPropertyName - CSS property name
      Returns:
      CSS value
    • isDisplayed

      @Tool(name="element_is_displayed", description="checks if an element is displayed") public boolean isDisplayed(locatorStrategy locatorStrategy, String locatorValue)
      Checks whether an element is displayed.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      Returns:
      true when displayed
    • isEnabled

      @Tool(name="element_is_enabled", description="checks if an element is enabled") public boolean isEnabled(locatorStrategy locatorStrategy, String locatorValue)
      Checks whether an element is enabled.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      Returns:
      true when enabled
    • isSelected

      @Tool(name="element_is_selected", description="checks if an element is selected") public boolean isSelected(locatorStrategy locatorStrategy, String locatorValue)
      Checks whether an element is selected.
      Parameters:
      locatorStrategy - locator strategy
      locatorValue - locator value
      Returns:
      true when selected