Skip to main content
Version: Latest

ActionConfig API Reference

Complete reference for all ActionConfig classes and their methods.

New to ActionConfig? Start with the ActionConfig Overview for concepts and patterns.

Looking for examples? See ActionConfig Examples for practical code samples.

Migrating from ActionOptions? Check the Upgrading to Latest guide.

Quick Referenceโ€‹

ActionConfig Class Hierarchyโ€‹

Find Operations (extends BaseFindOptions):

Click & Mouse Operations:

Keyboard Operations:

Composite Operations:

Visual Operations:

Supporting Classes (not ActionConfig):

Common Patternsโ€‹

Basic Find and Click:

action.perform(
new PatternFindOptions.Builder()
.setSimilarity(0.85)
.then(new ClickOptions.Builder().build())
.build(),
buttonImage
);

Click Until Verification:

new ClickOptions.Builder()
.setVerification(VerificationOptions.builder()
.setEvent(Event.OBJECTS_VANISH)
.setObjectCollection(spinnerCollection)
.build())
.setRepetition(RepetitionOptions.builder()
.setMaxTimesToRepeatActionSequence(10)
.build())
.build()

Find All Matches:

new PatternFindOptions.Builder()
.setStrategy(Strategy.ALL)
.setMaxMatchesToActOn(-1)
.build()

Builder Conventionsโ€‹

  • ActionConfig classes: new XxxOptions.Builder() (uppercase)
  • Supporting classes: XxxOptions.builder() (lowercase - Lombok)

Jump to Sectionโ€‹

Common Importsโ€‹

Most examples require these imports:

import io.github.jspinak.brobot.action.Action;
import io.github.jspinak.brobot.action.ActionResult;
import io.github.jspinak.brobot.action.basic.find.PatternFindOptions;
import io.github.jspinak.brobot.action.basic.click.ClickOptions;
import io.github.jspinak.brobot.action.basic.type.TypeOptions;
import io.github.jspinak.brobot.action.basic.mouse.*;
import io.github.jspinak.brobot.action.VerificationOptions;
import io.github.jspinak.brobot.action.RepetitionOptions;
import io.github.jspinak.brobot.datatypes.primitives.match.ObjectCollection;
import io.github.jspinak.brobot.datatypes.state.stateObject.stateImage.StateImage;
import io.github.jspinak.brobot.manageStates.mouse.MouseButton;
import org.sikuli.script.Pattern;
import org.springframework.beans.factory.annotation.Autowired;

Base Classesโ€‹

ActionConfigโ€‹

Abstract base class for all action configurations.

public abstract class ActionConfig

Common Propertiesโ€‹

PropertyTypeDefaultDescription
pauseBeforeBegindouble0.0Seconds to wait before executing
pauseAfterEnddouble0.0Seconds to wait after completion
illustrateIllustrateUSE_GLOBALIllustration setting
successCriteriaPredicate<ActionResult>nullCustom success validation
subsequentActionsList<ActionConfig>emptyChained actions
logTypeLogEventTypeACTIONLog event categorization

Common Methodsโ€‹

  • then(ActionConfig next) - Chain another action
  • getSubsequentActions() - Get chained actions
  • getIllustrate() - Get illustration setting

BaseFindOptionsโ€‹

Abstract base for all find operations.

public abstract class BaseFindOptions extends ActionConfig

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
similaritydouble0.7Minimum similarity score
searchRegionsSearchRegionsnullAreas to search
captureImagebooleantrueCapture screenshot
useDefinedRegionbooleanfalseUse predefined region
maxMatchesToActOnint-1Max matches (-1 = all)

Find Optionsโ€‹

PatternFindOptionsโ€‹

Standard image pattern matching using template matching algorithms.

public class PatternFindOptions extends BaseFindOptions

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
strategyStrategyBESTFind strategy (FIRST/BEST/ALL/EACH)
matchFusionMatchFusionOptionsnullHow to merge adjacent matches
matchAdjustmentMatchAdjustmentOptionsnullAdjust match position/size

Strategy Optionsโ€‹

  • FIRST - Return first match found (fastest)
  • BEST - Return highest-scoring match (recommended)
  • ALL - Return all matches above threshold
  • EACH - Process each StateImage separately

Examplesโ€‹

Basic Pattern Finding:

PatternFindOptions find = new PatternFindOptions.Builder()
.setSimilarity(0.85)
.setSearchRegions(regions)
.build();

Find All Matches:

PatternFindOptions findAll = new PatternFindOptions.Builder()
.setStrategy(PatternFindOptions.Strategy.ALL)
.setSimilarity(0.8)
.setMaxMatchesToActOn(-1) // Find all
.build();

With Match Fusion (merge nearby matches):

PatternFindOptions fusedFind = new PatternFindOptions.Builder()
.setSimilarity(0.9)
.setMatchFusion(MatchFusionOptions.builder()
.fusionMethod(FusionMethod.RELATIVE)
.maxFusionDistanceX(10)
.maxFusionDistanceY(10)
.build())
.build();

HistogramFindOptionsโ€‹

Find by color histogram comparison.

public class HistogramFindOptions extends BaseFindOptions

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
binOptionsHSVBinOptionsHSVBinOptions.builder().build()HSV color space bin configuration

HSVBinOptions Propertiesโ€‹

PropertyTypeDefaultDescription
hueBinsint12Hue histogram bins (color discrimination)
saturationBinsint2Saturation bins (intensity)
valueBinsint1Value/brightness bins

Exampleโ€‹

HistogramFindOptions histogramFind = new HistogramFindOptions.Builder()
.setSimilarity(0.8)
.setBinOptions(HSVBinOptions.builder()
.hueBins(90)
.saturationBins(2)
.valueBins(1)
.build())
.setMaxMatchesToActOn(5)
.build();

MotionFindOptionsโ€‹

Detect motion between frames.

public class MotionFindOptions extends BaseFindOptions

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
motionThresholdint25Pixel difference threshold
minChangeAreaint100Minimum changed area
frameDelayint100Milliseconds between frames

VanishOptionsโ€‹

Wait for element to disappear.

public class VanishOptions extends BaseFindOptions

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
timeoutdouble5.0Maximum wait time in seconds

ColorFindOptionsโ€‹

Find by color patterns using various color detection strategies.

public class ColorFindOptions extends BaseFindOptions

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
colorPatternColorPatternK_MEANSColor detection method (K_MEANS, MEAN_COLOR, CLASSIFICATION)
diameterint15Search diameter for color analysis
binOptionsHSVBinOptionsdefaultHSV color space binning

Color Pattern Strategiesโ€‹

  • K_MEANS - K-means clustering for dominant colors (most accurate)
  • MEAN_COLOR - Simple color averaging (fastest)
  • CLASSIFICATION - Color classification into predefined categories

Examplesโ€‹

K-Means Color Detection (find by dominant colors):

ColorFindOptions kmeansFind = new ColorFindOptions.Builder()
.setSimilarity(0.75)
.setColorPattern(ColorPattern.K_MEANS)
.setDiameter(20)
.build();

Mean Color Detection (simple averaging):

ColorFindOptions meanColorFind = new ColorFindOptions.Builder()
.setSimilarity(0.8)
.setColorPattern(ColorPattern.MEAN_COLOR)
.setDiameter(15)
.setBinOptions(HSVBinOptions.builder()
.hueBins(30)
.saturationBins(3)
.valueBins(2)
.build())
.build();

TextFindOptionsโ€‹

Find by OCR text recognition using Tesseract.

public class TextFindOptions extends BaseFindOptions

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
maxMatchRetriesint1Maximum retry attempts for text matching

Usage Notesโ€‹

  • Requires Tesseract OCR to be installed and configured
  • Text to search for is provided via ObjectCollection.withStrings()
  • Works best with clear, high-contrast text
  • Consider using higher similarity thresholds for fuzzy text matching

Exampleโ€‹

TextFindOptions ocrFind = new TextFindOptions.Builder()
.setSimilarity(0.85)
.setMaxMatchRetries(3)
.setSearchRegions(textRegion)
.build();

// Search for "Submit" button by text
ObjectCollection submitText = ObjectCollection.withStrings("Submit");
ActionResult result = action.perform(ocrFind, submitText);

FixedPixelsFindOptionsโ€‹

Find static/unchanging pixels by analyzing video playback for stationary regions.

public class FixedPixelsFindOptions extends BaseFindOptions

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
maxMovementdouble5.0Maximum pixel movement threshold
startPlaybackbooleanfalseStart video playback for analysis
playbackDurationdouble1.0Duration of playback analysis

Use Casesโ€‹

  • Find static UI elements in video content
  • Detect pause buttons or static overlays
  • Identify non-animated regions during playback

Exampleโ€‹

FixedPixelsFindOptions staticFind = new FixedPixelsFindOptions.Builder()
.setSimilarity(0.9)
.setMaxMovement(3.0)
.setStartPlayback(true)
.setPlaybackDuration(2.0)
.build();

// Find static UI controls during video playback
ActionResult result = action.perform(staticFind, videoControlsRegion);

DynamicPixelsFindOptionsโ€‹

Find changing/animated pixels by analyzing video playback for regions with motion.

public class DynamicPixelsFindOptions extends BaseFindOptions

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
maxMovementdouble5.0Maximum pixel movement threshold
startPlaybackbooleanfalseStart video playback for analysis
playbackDurationdouble1.0Duration of playback analysis

Use Casesโ€‹

  • Detect animated elements (spinners, progress bars)
  • Find video/animation regions
  • Identify moving UI elements

Exampleโ€‹

DynamicPixelsFindOptions animatedFind = new DynamicPixelsFindOptions.Builder()
.setSimilarity(0.85)
.setMaxMovement(10.0)
.setStartPlayback(true)
.setPlaybackDuration(1.5)
.build();

// Find loading spinners or animated indicators
ActionResult result = action.perform(animatedFind, loadingRegion);

SimilarImagesFindOptionsโ€‹

Compare images for similarity using various comparison strategies.

public class SimilarImagesFindOptions extends BaseFindOptions

Additional Propertiesโ€‹

PropertyTypeDefaultDescription
comparisonMethodComparisonMethodBEST_MATCHComparison strategy
includeNoMatchesbooleanfalseInclude failed comparisons in results
returnAllScoresbooleanfalseReturn all comparison scores

Comparison Methodsโ€‹

  • BEST_MATCH - Find best matching image (template matching)
  • STRUCTURAL_SIMILARITY - SSIM-based comparison (perceptual quality)
  • HISTOGRAM_COMPARISON - Color distribution matching

Factory Methodsโ€‹

Convenience factory methods for common use cases:

  • forScreenRecognition() - Optimized for screen capture comparison
  • forDuplicateDetection() - Detect duplicate images
  • forChangeDetection() - Detect changes between images

Examplesโ€‹

Screen Recognition (optimized settings):

SimilarImagesFindOptions screenMatch =
SimilarImagesFindOptions.forScreenRecognition();

ActionResult result = action.perform(screenMatch, referenceScreenshot);

Duplicate Detection (find identical images):

SimilarImagesFindOptions duplicateDetect =
SimilarImagesFindOptions.forDuplicateDetection();

ActionResult result = action.perform(duplicateDetect, imageCollection);

Change Detection (find differences):

SimilarImagesFindOptions changeDetect =
SimilarImagesFindOptions.forChangeDetection();

ActionResult result = action.perform(changeDetect, beforeImage, afterImage);

Custom Configuration:

SimilarImagesFindOptions customCompare = new SimilarImagesFindOptions.Builder()
.setSimilarity(0.9)
.setComparisonMethod(ComparisonMethod.STRUCTURAL_SIMILARITY)
.setReturnAllScores(true)
.setIncludeNoMatches(false)
.build();

Click Optionsโ€‹

ClickOptionsโ€‹

Mouse click configuration.

public class ClickOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
numberOfClicksint1Number of clicks
pressOptionsMousePressOptionsdefaultMouse button config
verificationOptionsVerificationOptionsnullPost-click verification

Exampleโ€‹

ClickOptions doubleClick = new ClickOptions.Builder()
.setNumberOfClicks(2)
.setPressOptions(MousePressOptions.builder()
.setButton(MouseButton.LEFT)
.setPauseBetweenClicks(0.1)
.build())
.build();

MousePressOptionsโ€‹

Reusable mouse press configuration (not an ActionConfig).

public class MousePressOptions

Propertiesโ€‹

PropertyTypeDefaultDescription
buttonMouseButtonLEFTWhich button to press
pauseBeforeMouseDowndouble0.0Pause before press
pauseAfterMouseDowndouble0.0Pause after press
pauseBeforeMouseUpdouble0.0Pause before release
pauseAfterMouseUpdouble0.0Pause after release
pauseBetweenClicksdouble0.0Pause between multi-clicks

Type Optionsโ€‹

TypeOptionsโ€‹

Keyboard input configuration.

public class TypeOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
typeDelaydouble0.03Delay between characters
modifiersString""Modifier keys (e.g., "CTRL", "SHIFT", "CTRL+SHIFT")

Note: Text to type is provided via ObjectCollection.withStrings(), not through TypeOptions properties. Special keys use string notation like "{TAB}", "{ENTER}", "{ESC}", etc.

Exampleโ€‹

// Basic typing
TypeOptions typeOptions = new TypeOptions.Builder()
.setTypeDelay(0.05)
.build();

action.perform(typeOptions,
ObjectCollection.withStrings("user@example.com"));

// With modifiers (keyboard shortcuts)
TypeOptions ctrlShiftS = new TypeOptions.Builder()
.setModifiers("CTRL+SHIFT")
.build();

action.perform(ctrlShiftS,
ObjectCollection.withStrings("s")); // Ctrl+Shift+S

// Special keys in text
action.perform(typeOptions,
ObjectCollection.withStrings("text{TAB}more{ENTER}"));

Mouse Movement Optionsโ€‹

MouseMoveOptionsโ€‹

Mouse movement configuration.

public class MouseMoveOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
locationLocationnullTarget location
moveTimedouble0.5Movement duration
movementPatternMovementPatternSMOOTHMovement style

MouseDownOptionsโ€‹

Mouse button press (without release).

public class MouseDownOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
pressOptionsMousePressOptionsdefaultButton configuration

MouseUpOptionsโ€‹

Mouse button release.

public class MouseUpOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
pressOptionsMousePressOptionsdefaultButton configuration

ScrollOptionsโ€‹

Mouse wheel scrolling.

public class ScrollOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
directionScrollDirectionDOWNScroll direction
clicksint3Number of scroll clicks
pauseBetweenScrollsdouble0.1Pause between scrolls

Visual Optionsโ€‹

DefineRegionOptionsโ€‹

Define a screen region.

public class DefineRegionOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
regionTypeRegionTypeDYNAMICType of region
anchorPointAnchorPointCENTERAnchor position
offsetXint0X offset from anchor
offsetYint0Y offset from anchor
widthint0Region width
heightint0Region height

HighlightOptionsโ€‹

Visual highlighting.

public class HighlightOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
durationdouble2.0Highlight duration
colorColorREDHighlight color
lineWidthint3Border width

Composite Optionsโ€‹

DragOptionsโ€‹

Drag and drop configuration.

public class DragOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
fromOptionsBaseFindOptionsrequiredFind source
toOptionsBaseFindOptionsrequiredFind target
holdTimedouble0.5Hold before drag
dragSpeedDragSpeedNORMALDrag speed

Exampleโ€‹

DragOptions drag = new DragOptions.Builder()
.setFromOptions(new PatternFindOptions.Builder()
.setSimilarity(0.9)
.build())
.setToOptions(new PatternFindOptions.Builder()
.setSimilarity(0.9)
.build())
.build();

ClickAndTypeOptionsโ€‹

Combined find, click, and type operation.

public class ClickAndTypeOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
findOptionsPatternFindOptionsrequiredFind configuration
clickOptionsClickOptionsdefaultClick configuration
typeOptionsTypeOptionsrequiredType configuration

Exampleโ€‹

ClickAndTypeOptions fillField = new ClickAndTypeOptions.Builder()
.setFindOptions(new PatternFindOptions.Builder()
.setSimilarity(0.9)
.build())
.setClickOptions(new ClickOptions.Builder()
.setNumberOfClicks(1)
.build())
.setTypeOptions(new TypeOptions.Builder()
.setTypeDelay(0.05)
.build())
.build();

// Text provided via ObjectCollection
action.perform(fillField,
usernameField,
ObjectCollection.withStrings("user@example.com"));

PlaybackOptionsโ€‹

Playback recorded automation sequences.

public class PlaybackOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
startPlaybackbooleanfalseBegin sequence playback
playbackDurationdouble1.0Duration in seconds

NestedFindsOptionsโ€‹

Execute multiple find operations in sequence within previous results.

public class NestedFindsOptions extends ActionConfig

Propertiesโ€‹

PropertyTypeDefaultDescription
findStepsList<PatternFindOptions>emptySequential find operations

Exampleโ€‹

// Find button within dialog within window
PatternFindOptions findWindow = new PatternFindOptions.Builder()
.setSimilarity(0.9).build();
PatternFindOptions findDialog = new PatternFindOptions.Builder()
.setSimilarity(0.85).build();
PatternFindOptions findButton = new PatternFindOptions.Builder()
.setSimilarity(0.8).build();

NestedFindsOptions nestedFind = new NestedFindsOptions.Builder()
.setFindSteps(Arrays.asList(findWindow, findDialog, findButton))
.build();

Click-Until Behaviorโ€‹

Note: There is no ClickUntilOptions class. Click-until behavior is achieved using ClickOptions with VerificationOptions and RepetitionOptions.

Example: Click Until Objects Vanishโ€‹

StateImage loadingSpinner = new StateImage.Builder()
.withPattern(new Pattern("loading.png"))
.build();

ObjectCollection spinnerCollection = new ObjectCollection.Builder()
.withStateImages(loadingSpinner)
.build();

ClickOptions clickUntilVanish = new ClickOptions.Builder()
.setNumberOfClicks(1)
.setVerification(VerificationOptions.builder()
.setEvent(VerificationOptions.Event.OBJECTS_VANISH)
.setObjectCollection(spinnerCollection)
.build())
.setRepetition(RepetitionOptions.builder()
.setMaxTimesToRepeatActionSequence(10)
.setPauseBetweenActionSequences(1.0)
.build())
.build();

StateImage refreshButton = new StateImage.Builder()
.withPattern(new Pattern("refresh.png"))
.build();

action.perform(clickUntilVanish, refreshButton);

Supporting Classesโ€‹

VerificationOptionsโ€‹

Post-action verification (not an ActionConfig).

public class VerificationOptions

Propertiesโ€‹

PropertyTypeDefaultDescription
eventEventNONEWhat to verify
conditionConditionCONTINUE_UNTIL_CONDITION_METHow to verify
objectCollectionObjectCollectionnullObjects to verify
textStringnullText to verify

Event Typesโ€‹

  • NONE - No verification
  • OBJECTS_APPEAR - Wait for objects to appear
  • OBJECTS_VANISH - Wait for objects to disappear
  • TEXT_APPEARS - Wait for text to appear
  • TEXT_VANISHES - Wait for text to disappear

Condition Typesโ€‹

  • CONTINUE_UNTIL_CONDITION_MET - Keep repeating until condition is true
  • TERMINATE_ON_CONDITION - Stop when condition becomes true

RepetitionOptionsโ€‹

Action repetition configuration (not an ActionConfig).

public class RepetitionOptions

Propertiesโ€‹

PropertyTypeDefaultDescription
timesToRepeatIndividualActionint1Repeat individual action (e.g., clicks per match)
maxTimesToRepeatActionSequenceint1Maximum times to repeat entire action sequence
pauseBetweenIndividualActionsdouble0.0Pause between individual actions
pauseBetweenActionSequencesdouble0.0Pause between action sequences

ActionChainOptionsโ€‹

Configuration for chained action execution.

public class ActionChainOptions

Propertiesโ€‹

PropertyTypeDefaultDescription
initialActionActionConfigrequiredFirst action
chainedActionsList<ActionConfig>emptySubsequent actions
strategyChainingStrategyNESTEDExecution strategy

Chaining Strategiesโ€‹

  • NESTED - Each action searches within previous results
  • CONFIRM - Each action validates previous results

Enumerationsโ€‹

MouseButtonโ€‹

Mouse button identifiers for click and press operations.

public enum MouseButton {
LEFT, // Primary mouse button (default)
RIGHT, // Context menu button
MIDDLE // Scroll wheel button
}

Usage:

MousePressOptions.builder()
.setButton(MouseButton.RIGHT)
.build()

ScrollDirectionโ€‹

Direction for mouse wheel scrolling.

public enum ScrollDirection {
UP, // Scroll up (toward top of content)
DOWN, // Scroll down (toward bottom of content)
LEFT, // Scroll left (horizontal scrolling)
RIGHT // Scroll right (horizontal scrolling)
}

Usage:

ScrollOptions scroll = new ScrollOptions.Builder()
.setDirection(ScrollDirection.DOWN)
.setClicks(5)
.build();

Illustrateโ€‹

Visual illustration control for debugging and demonstration.

public enum Illustrate {
YES, // Always illustrate this action (show highlights)
NO, // Never illustrate this action (no visual feedback)
USE_GLOBAL // Use framework-wide setting from properties
}

Usage:

ClickOptions click = new ClickOptions.Builder()
.setIllustrate(Illustrate.YES) // Always show visual feedback
.build();

Configuration:

# In application.properties
brobot.illustrate=true # Global illustration setting

Find Strategyโ€‹

Pattern finding strategies (PatternFindOptions.Strategy).

public enum Strategy {
FIRST, // Return first match found (fastest, non-deterministic order)
BEST, // Return highest-scoring match (recommended default)
ALL, // Return all matches above threshold
EACH // Process each StateImage separately
}

Usage:

PatternFindOptions find = new PatternFindOptions.Builder()
.setStrategy(PatternFindOptions.Strategy.ALL)
.setMaxMatchesToActOn(-1) // Find all matches
.build();

Verification Eventsโ€‹

Post-action verification events (VerificationOptions.Event).

public enum Event {
NONE, // No verification
OBJECTS_APPEAR, // Wait for objects to become visible
OBJECTS_VANISH, // Wait for objects to disappear
TEXT_APPEARS, // Wait for text to appear (OCR)
TEXT_VANISHES // Wait for text to disappear (OCR)
}

Usage:

VerificationOptions.builder()
.setEvent(VerificationOptions.Event.OBJECTS_VANISH)
.setObjectCollection(spinnerCollection)
.build()

Chaining Strategyโ€‹

Action chaining execution strategies (ActionChainOptions).

public enum ChainingStrategy {
NESTED, // Each action searches within results of previous action
CONFIRM // Each action validates/confirms previous action results
}

Usage:

ActionChainOptions chain = new ActionChainOptions.Builder()
.setStrategy(ChainingStrategy.NESTED)
.build();

Builder Patternโ€‹

All ActionConfig classes use the builder pattern with two builder conventions:

Builder Conventionsโ€‹

Manual Builders (uppercase new Builder()):

  • ActionConfig classes: ClickOptions, PatternFindOptions, TypeOptions, etc.
  • Example: new ClickOptions.Builder()

Lombok Builders (lowercase .builder()):

  • Supporting classes: MousePressOptions, VerificationOptions, RepetitionOptions
  • Example: MousePressOptions.builder()

Basic Patternโ€‹

// General pattern
XxxOptions options = new XxxOptions.Builder()
.setProperty1(value1)
.setProperty2(value2)
.build();

// With chaining
ActionConfig chain = new XxxOptions.Builder()
.setProperty(value)
.then(new YyyOptions.Builder()
.setProperty(value)
.build())
.build();

Builder Method Referenceโ€‹

Common ActionConfig Builder Methodsโ€‹

All ActionConfig builders inherit these methods:

MethodParameter TypeDescription
setPauseBeforeBegin(double)doublePause in seconds before action starts
setPauseAfterEnd(double)doublePause in seconds after action completes
setIllustrate(Illustrate)IllustrateEnable/disable visual illustration (YES/NO/USE_GLOBAL)
setSuccessCriteria(Predicate)Predicate<ActionResult>Custom success validation logic
setLogType(LogEventType)LogEventTypeCategorize log events
then(ActionConfig)ActionConfigChain another action to execute after this one
build()-Build the ActionConfig instance

BaseFindOptions Builder Methodsโ€‹

All find options builders (PatternFindOptions, HistogramFindOptions, etc.) inherit these methods:

MethodParameter TypeDescription
setSimilarity(double)doubleMinimum similarity threshold (0.0-1.0)
setSearchRegions(SearchRegions)SearchRegionsRegions to search within
setCaptureImage(boolean)booleanWhether to capture screenshots
setUseDefinedRegion(boolean)booleanUse predefined region instead of searching
setMaxMatchesToActOn(int)intMaximum number of matches (-1 for all)

PatternFindOptions Builder Methodsโ€‹

MethodParameter TypeDescription
setStrategy(Strategy)StrategyFind strategy (FIRST/BEST/ALL/EACH)
setMatchFusion(MatchFusionOptions)MatchFusionOptionsConfigure match merging
setMatchAdjustment(MatchAdjustmentOptions)MatchAdjustmentOptionsAdjust match positions/sizes

ClickOptions Builder Methodsโ€‹

MethodParameter TypeDescription
setNumberOfClicks(int)intNumber of times to click
setPressOptions(MousePressOptions)MousePressOptionsMouse button configuration
setVerification(VerificationOptions)VerificationOptionsPost-click verification
setRepetition(RepetitionOptions)RepetitionOptionsRepetition configuration

TypeOptions Builder Methodsโ€‹

MethodParameter TypeDescription
setTypeDelay(double)doubleDelay between keystrokes in seconds
setModifiers(String)StringModifier keys ("CTRL", "SHIFT", "CTRL+SHIFT", etc.)

DragOptions Builder Methodsโ€‹

MethodParameter TypeDescription
setFromOptions(BaseFindOptions)BaseFindOptionsFind configuration for drag source
setToOptions(BaseFindOptions)BaseFindOptionsFind configuration for drag target
setHoldTime(double)doubleTime to hold before dragging
setDragSpeed(DragSpeed)DragSpeedSpeed of drag operation

MousePressOptions Builder Methods (Lombok)โ€‹

Use lowercase .builder() method:

MethodParameter TypeDescription
setButton(MouseButton)MouseButtonButton to press (LEFT/RIGHT/MIDDLE)
setPauseBeforeMouseDown(double)doublePause before pressing
setPauseAfterMouseDown(double)doublePause after pressing
setPauseBeforeMouseUp(double)doublePause before releasing
setPauseAfterMouseUp(double)doublePause after releasing
setPauseBetweenClicks(double)doublePause between multiple clicks
build()-Build the MousePressOptions

VerificationOptions Builder Methods (Lombok)โ€‹

Use lowercase .builder() method:

MethodParameter TypeDescription
setEvent(Event)EventWhat to verify (OBJECTS_APPEAR/VANISH, TEXT_APPEARS/VANISHES)
setCondition(Condition)ConditionHow to verify (CONTINUE_UNTIL_CONDITION_MET, TERMINATE_ON_CONDITION)
setObjectCollection(ObjectCollection)ObjectCollectionObjects to verify
setText(String)StringText to verify
build()-Build the VerificationOptions

RepetitionOptions Builder Methods (Lombok)โ€‹

Use lowercase .builder() method:

MethodParameter TypeDescription
setTimesToRepeatIndividualAction(int)intRepeat individual action N times
setMaxTimesToRepeatActionSequence(int)intMaximum action sequence repetitions
setPauseBetweenIndividualActions(double)doublePause between individual actions
setPauseBetweenActionSequences(double)doublePause between action sequences
build()-Build the RepetitionOptions

See Alsoโ€‹

Core Documentationโ€‹

Advanced Topicsโ€‹

Configuration & Testingโ€‹