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):
- PatternFindOptions - Template matching (most common)
- HistogramFindOptions - Color histogram comparison
- ColorFindOptions - Color pattern detection
- TextFindOptions - OCR text recognition
- MotionFindOptions - Motion detection
- VanishOptions - Wait for disappearance
- FixedPixelsFindOptions - Static pixel detection
- DynamicPixelsFindOptions - Animated pixel detection
- SimilarImagesFindOptions - Image similarity comparison
Click & Mouse Operations:
- ClickOptions - Mouse clicks with verification
- MouseMoveOptions - Mouse movement
- MouseDownOptions - Mouse button press
- MouseUpOptions - Mouse button release
- ScrollOptions - Mouse wheel scrolling
Keyboard Operations:
- TypeOptions - Keyboard input
Composite Operations:
- DragOptions - Drag and drop
- ClickAndTypeOptions - Combined click and type
- PlaybackOptions - Recorded sequence playback
- NestedFindsOptions - Nested find operations
Visual Operations:
- DefineRegionOptions - Define screen regions
- HighlightOptions - Visual highlighting
Supporting Classes (not ActionConfig):
- MousePressOptions - Mouse button configuration
- VerificationOptions - Post-action verification
- RepetitionOptions - Action repetition
- ActionChainOptions - Action chaining configuration
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โ
- Base Classes - ActionConfig and BaseFindOptions
- Find Options - All find operation classes
- Click Options - Click and mouse press options
- Type Options - Keyboard input
- Mouse Movement Options - Mouse operations
- Visual Options - Visual operations
- Composite Options - Combined operations
- Supporting Classes - Helper classes
- Enumerations - All enum types
- Builder Pattern - Builder usage guide
- Builder Method Reference - Complete method tables
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โ
| Property | Type | Default | Description |
|---|---|---|---|
pauseBeforeBegin | double | 0.0 | Seconds to wait before executing |
pauseAfterEnd | double | 0.0 | Seconds to wait after completion |
illustrate | Illustrate | USE_GLOBAL | Illustration setting |
successCriteria | Predicate<ActionResult> | null | Custom success validation |
subsequentActions | List<ActionConfig> | empty | Chained actions |
logType | LogEventType | ACTION | Log event categorization |
Common Methodsโ
then(ActionConfig next)- Chain another actiongetSubsequentActions()- Get chained actionsgetIllustrate()- Get illustration setting
BaseFindOptionsโ
Abstract base for all find operations.
public abstract class BaseFindOptions extends ActionConfig
Additional Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
similarity | double | 0.7 | Minimum similarity score |
searchRegions | SearchRegions | null | Areas to search |
captureImage | boolean | true | Capture screenshot |
useDefinedRegion | boolean | false | Use predefined region |
maxMatchesToActOn | int | -1 | Max matches (-1 = all) |
Find Optionsโ
PatternFindOptionsโ
Standard image pattern matching using template matching algorithms.
public class PatternFindOptions extends BaseFindOptions
Additional Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
strategy | Strategy | BEST | Find strategy (FIRST/BEST/ALL/EACH) |
matchFusion | MatchFusionOptions | null | How to merge adjacent matches |
matchAdjustment | MatchAdjustmentOptions | null | Adjust match position/size |
Strategy Optionsโ
FIRST- Return first match found (fastest)BEST- Return highest-scoring match (recommended)ALL- Return all matches above thresholdEACH- 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โ
| Property | Type | Default | Description |
|---|---|---|---|
binOptions | HSVBinOptions | HSVBinOptions.builder().build() | HSV color space bin configuration |
HSVBinOptions Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
hueBins | int | 12 | Hue histogram bins (color discrimination) |
saturationBins | int | 2 | Saturation bins (intensity) |
valueBins | int | 1 | Value/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โ
| Property | Type | Default | Description |
|---|---|---|---|
motionThreshold | int | 25 | Pixel difference threshold |
minChangeArea | int | 100 | Minimum changed area |
frameDelay | int | 100 | Milliseconds between frames |
VanishOptionsโ
Wait for element to disappear.
public class VanishOptions extends BaseFindOptions
Additional Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
timeout | double | 5.0 | Maximum wait time in seconds |
ColorFindOptionsโ
Find by color patterns using various color detection strategies.
public class ColorFindOptions extends BaseFindOptions
Additional Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
colorPattern | ColorPattern | K_MEANS | Color detection method (K_MEANS, MEAN_COLOR, CLASSIFICATION) |
diameter | int | 15 | Search diameter for color analysis |
binOptions | HSVBinOptions | default | HSV 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โ
| Property | Type | Default | Description |
|---|---|---|---|
maxMatchRetries | int | 1 | Maximum 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โ
| Property | Type | Default | Description |
|---|---|---|---|
maxMovement | double | 5.0 | Maximum pixel movement threshold |
startPlayback | boolean | false | Start video playback for analysis |
playbackDuration | double | 1.0 | Duration 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โ
| Property | Type | Default | Description |
|---|---|---|---|
maxMovement | double | 5.0 | Maximum pixel movement threshold |
startPlayback | boolean | false | Start video playback for analysis |
playbackDuration | double | 1.0 | Duration 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โ
| Property | Type | Default | Description |
|---|---|---|---|
comparisonMethod | ComparisonMethod | BEST_MATCH | Comparison strategy |
includeNoMatches | boolean | false | Include failed comparisons in results |
returnAllScores | boolean | false | Return 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 comparisonforDuplicateDetection()- Detect duplicate imagesforChangeDetection()- 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โ
| Property | Type | Default | Description |
|---|---|---|---|
numberOfClicks | int | 1 | Number of clicks |
pressOptions | MousePressOptions | default | Mouse button config |
verificationOptions | VerificationOptions | null | Post-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โ
| Property | Type | Default | Description |
|---|---|---|---|
button | MouseButton | LEFT | Which button to press |
pauseBeforeMouseDown | double | 0.0 | Pause before press |
pauseAfterMouseDown | double | 0.0 | Pause after press |
pauseBeforeMouseUp | double | 0.0 | Pause before release |
pauseAfterMouseUp | double | 0.0 | Pause after release |
pauseBetweenClicks | double | 0.0 | Pause between multi-clicks |
Type Optionsโ
TypeOptionsโ
Keyboard input configuration.
public class TypeOptions extends ActionConfig
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
typeDelay | double | 0.03 | Delay between characters |
modifiers | String | "" | 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โ
| Property | Type | Default | Description |
|---|---|---|---|
location | Location | null | Target location |
moveTime | double | 0.5 | Movement duration |
movementPattern | MovementPattern | SMOOTH | Movement style |
MouseDownOptionsโ
Mouse button press (without release).
public class MouseDownOptions extends ActionConfig
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
pressOptions | MousePressOptions | default | Button configuration |
MouseUpOptionsโ
Mouse button release.
public class MouseUpOptions extends ActionConfig
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
pressOptions | MousePressOptions | default | Button configuration |
ScrollOptionsโ
Mouse wheel scrolling.
public class ScrollOptions extends ActionConfig
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
direction | ScrollDirection | DOWN | Scroll direction |
clicks | int | 3 | Number of scroll clicks |
pauseBetweenScrolls | double | 0.1 | Pause between scrolls |
Visual Optionsโ
DefineRegionOptionsโ
Define a screen region.
public class DefineRegionOptions extends ActionConfig
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
regionType | RegionType | DYNAMIC | Type of region |
anchorPoint | AnchorPoint | CENTER | Anchor position |
offsetX | int | 0 | X offset from anchor |
offsetY | int | 0 | Y offset from anchor |
width | int | 0 | Region width |
height | int | 0 | Region height |
HighlightOptionsโ
Visual highlighting.
public class HighlightOptions extends ActionConfig
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
duration | double | 2.0 | Highlight duration |
color | Color | RED | Highlight color |
lineWidth | int | 3 | Border width |
Composite Optionsโ
DragOptionsโ
Drag and drop configuration.
public class DragOptions extends ActionConfig
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
fromOptions | BaseFindOptions | required | Find source |
toOptions | BaseFindOptions | required | Find target |
holdTime | double | 0.5 | Hold before drag |
dragSpeed | DragSpeed | NORMAL | Drag 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โ
| Property | Type | Default | Description |
|---|---|---|---|
findOptions | PatternFindOptions | required | Find configuration |
clickOptions | ClickOptions | default | Click configuration |
typeOptions | TypeOptions | required | Type 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โ
| Property | Type | Default | Description |
|---|---|---|---|
startPlayback | boolean | false | Begin sequence playback |
playbackDuration | double | 1.0 | Duration in seconds |
NestedFindsOptionsโ
Execute multiple find operations in sequence within previous results.
public class NestedFindsOptions extends ActionConfig
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
findSteps | List<PatternFindOptions> | empty | Sequential 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โ
| Property | Type | Default | Description |
|---|---|---|---|
event | Event | NONE | What to verify |
condition | Condition | CONTINUE_UNTIL_CONDITION_MET | How to verify |
objectCollection | ObjectCollection | null | Objects to verify |
text | String | null | Text to verify |
Event Typesโ
NONE- No verificationOBJECTS_APPEAR- Wait for objects to appearOBJECTS_VANISH- Wait for objects to disappearTEXT_APPEARS- Wait for text to appearTEXT_VANISHES- Wait for text to disappear
Condition Typesโ
CONTINUE_UNTIL_CONDITION_MET- Keep repeating until condition is trueTERMINATE_ON_CONDITION- Stop when condition becomes true
RepetitionOptionsโ
Action repetition configuration (not an ActionConfig).
public class RepetitionOptions
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
timesToRepeatIndividualAction | int | 1 | Repeat individual action (e.g., clicks per match) |
maxTimesToRepeatActionSequence | int | 1 | Maximum times to repeat entire action sequence |
pauseBetweenIndividualActions | double | 0.0 | Pause between individual actions |
pauseBetweenActionSequences | double | 0.0 | Pause between action sequences |
ActionChainOptionsโ
Configuration for chained action execution.
public class ActionChainOptions
Propertiesโ
| Property | Type | Default | Description |
|---|---|---|---|
initialAction | ActionConfig | required | First action |
chainedActions | List<ActionConfig> | empty | Subsequent actions |
strategy | ChainingStrategy | NESTED | Execution strategy |
Chaining Strategiesโ
NESTED- Each action searches within previous resultsCONFIRM- 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:
| Method | Parameter Type | Description |
|---|---|---|
setPauseBeforeBegin(double) | double | Pause in seconds before action starts |
setPauseAfterEnd(double) | double | Pause in seconds after action completes |
setIllustrate(Illustrate) | Illustrate | Enable/disable visual illustration (YES/NO/USE_GLOBAL) |
setSuccessCriteria(Predicate) | Predicate<ActionResult> | Custom success validation logic |
setLogType(LogEventType) | LogEventType | Categorize log events |
then(ActionConfig) | ActionConfig | Chain 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:
| Method | Parameter Type | Description |
|---|---|---|
setSimilarity(double) | double | Minimum similarity threshold (0.0-1.0) |
setSearchRegions(SearchRegions) | SearchRegions | Regions to search within |
setCaptureImage(boolean) | boolean | Whether to capture screenshots |
setUseDefinedRegion(boolean) | boolean | Use predefined region instead of searching |
setMaxMatchesToActOn(int) | int | Maximum number of matches (-1 for all) |
PatternFindOptions Builder Methodsโ
| Method | Parameter Type | Description |
|---|---|---|
setStrategy(Strategy) | Strategy | Find strategy (FIRST/BEST/ALL/EACH) |
setMatchFusion(MatchFusionOptions) | MatchFusionOptions | Configure match merging |
setMatchAdjustment(MatchAdjustmentOptions) | MatchAdjustmentOptions | Adjust match positions/sizes |
ClickOptions Builder Methodsโ
| Method | Parameter Type | Description |
|---|---|---|
setNumberOfClicks(int) | int | Number of times to click |
setPressOptions(MousePressOptions) | MousePressOptions | Mouse button configuration |
setVerification(VerificationOptions) | VerificationOptions | Post-click verification |
setRepetition(RepetitionOptions) | RepetitionOptions | Repetition configuration |
TypeOptions Builder Methodsโ
| Method | Parameter Type | Description |
|---|---|---|
setTypeDelay(double) | double | Delay between keystrokes in seconds |
setModifiers(String) | String | Modifier keys ("CTRL", "SHIFT", "CTRL+SHIFT", etc.) |
DragOptions Builder Methodsโ
| Method | Parameter Type | Description |
|---|---|---|
setFromOptions(BaseFindOptions) | BaseFindOptions | Find configuration for drag source |
setToOptions(BaseFindOptions) | BaseFindOptions | Find configuration for drag target |
setHoldTime(double) | double | Time to hold before dragging |
setDragSpeed(DragSpeed) | DragSpeed | Speed of drag operation |
MousePressOptions Builder Methods (Lombok)โ
Use lowercase .builder() method:
| Method | Parameter Type | Description |
|---|---|---|
setButton(MouseButton) | MouseButton | Button to press (LEFT/RIGHT/MIDDLE) |
setPauseBeforeMouseDown(double) | double | Pause before pressing |
setPauseAfterMouseDown(double) | double | Pause after pressing |
setPauseBeforeMouseUp(double) | double | Pause before releasing |
setPauseAfterMouseUp(double) | double | Pause after releasing |
setPauseBetweenClicks(double) | double | Pause between multiple clicks |
build() | - | Build the MousePressOptions |
VerificationOptions Builder Methods (Lombok)โ
Use lowercase .builder() method:
| Method | Parameter Type | Description |
|---|---|---|
setEvent(Event) | Event | What to verify (OBJECTS_APPEAR/VANISH, TEXT_APPEARS/VANISHES) |
setCondition(Condition) | Condition | How to verify (CONTINUE_UNTIL_CONDITION_MET, TERMINATE_ON_CONDITION) |
setObjectCollection(ObjectCollection) | ObjectCollection | Objects to verify |
setText(String) | String | Text to verify |
build() | - | Build the VerificationOptions |
RepetitionOptions Builder Methods (Lombok)โ
Use lowercase .builder() method:
| Method | Parameter Type | Description |
|---|---|---|
setTimesToRepeatIndividualAction(int) | int | Repeat individual action N times |
setMaxTimesToRepeatActionSequence(int) | int | Maximum action sequence repetitions |
setPauseBetweenIndividualActions(double) | double | Pause between individual actions |
setPauseBetweenActionSequences(double) | double | Pause between action sequences |
build() | - | Build the RepetitionOptions |
See Alsoโ
Core Documentationโ
- ActionConfig Overview - Concepts and architecture
- Upgrading to Latest - Migrating from ActionOptions
- ActionConfig Examples - Practical code samples
Advanced Topicsโ
- Action Chaining - Chaining actions with
then() - Conditional Actions - Repeat-until and conditional patterns
- ActionResult Components - Understanding action results
- Convenience Methods - Simpler API for common operations
Configuration & Testingโ
- ActionConfig Factory - Factory patterns for configuration
- Builder Performance Guide - Optimizing builder usage
- Testing Guide - Testing automation code
Related Guidesโ
- States in Brobot - State management
- Finding Objects - Finding strategies
- Special Keys Guide - Keyboard and special keys actions