Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
#TESTAR v2.7.21 (24-Feb-2026)
#TESTAR v2.7.23 (5-Mar-2026)
- Update webdriver remote actions descriptions
- Add webdriver remote actions to LLM conversation

#TESTAR v2.7.22 (24-Feb-2026)
- Bump org.seleniumhq.selenium:selenium-java from 4.40.0 to 4.41.0
- Update devtools dependencies to v145
- Ignore dynamic numbers when deduplicating AndroidLogcatOracle messages
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.7.22
2.7.23
14 changes: 12 additions & 2 deletions testar/src/org/testar/action/priorization/llm/ActionHistory.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/***************************************************************************************************
*
* Copyright (c) 2024 - 2025 Open Universiteit - www.ou.nl
* Copyright (c) 2024 - 2025 Universitat Politecnica de Valencia - www.upv.es
* Copyright (c) 2024 - 2026 Open Universiteit - www.ou.nl
* Copyright (c) 2024 - 2026 Universitat Politecnica de Valencia - www.upv.es
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Expand Down Expand Up @@ -40,6 +40,7 @@
import org.testar.monkey.alayer.actions.CompoundAction;
import org.testar.monkey.alayer.actions.PasteText;
import org.testar.monkey.alayer.actions.Type;
import org.testar.monkey.alayer.actions.WdRemoteTypeAction;
import org.testar.monkey.alayer.actions.WdSelectListAction;

import java.util.ArrayList;
Expand Down Expand Up @@ -122,11 +123,15 @@ public String toString() {
switch(type) {
case "ClickTypeInto":
case "PasteTextInto":
case "RemoteType":
case "RemoteScrollType":
String input = getCompoundActionInputText(action);
// TODO: Differentiate between types of input fields (numeric, password, etc.)
builder.append(String.format("%s: Typed '%s' in TextField '%s'", actionId, input, description));
break;
case "LeftClickAt":
case "RemoteClick":
case "RemoteScrollClick":
builder.append(String.format("%s: Clicked on '%s'", actionId, description));
break;
case "HistoryBackScript":
Expand Down Expand Up @@ -176,6 +181,11 @@ private String getCompoundActionInputText(Action action) {
}
}

if(action instanceof WdRemoteTypeAction) {
CharSequence input = ((WdRemoteTypeAction) action).getKeys();
return input == null ? "Unknown Action Input" : input.toString();
}

return action.get(Tags.InputText, "Unknown Action Input");
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/***************************************************************************************************
*
* Copyright (c) 2025 Open Universiteit - www.ou.nl
* Copyright (c) 2025 Universitat Politecnica de Valencia - www.upv.es
* Copyright (c) 2025 - 2026 Open Universiteit - www.ou.nl
* Copyright (c) 2025 - 2026 Universitat Politecnica de Valencia - www.upv.es
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Expand Down Expand Up @@ -46,6 +46,7 @@
import org.testar.monkey.alayer.actions.NOP;
import org.testar.monkey.alayer.actions.PasteText;
import org.testar.monkey.alayer.actions.Type;
import org.testar.monkey.alayer.actions.WdRemoteTypeAction;
import org.testar.monkey.alayer.actions.WdSelectListAction;
import org.testar.monkey.alayer.visualizers.TextVisualizer;
import org.testar.monkey.alayer.webdriver.enums.WdTags;
Expand Down Expand Up @@ -178,6 +179,11 @@ private boolean setCompoundActionInputText(Action action, String inputText) {
}

private boolean updateTextAction(Action action, Action innerAction, String inputText) {
if(action instanceof WdRemoteTypeAction) {
((WdRemoteTypeAction) action).setKeys(inputText);
return true;
}

innerAction.set(Tags.InputText, inputText);

String widgetDesc = action.get(Tags.OriginWidget).get(Tags.Desc, "<no description>");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/***************************************************************************************************
*
* Copyright (c) 2024 - 2025 Open Universiteit - www.ou.nl
* Copyright (c) 2024 - 2025 Universitat Politecnica de Valencia - www.upv.es
* Copyright (c) 2024 - 2026 Open Universiteit - www.ou.nl
* Copyright (c) 2024 - 2026 Universitat Politecnica de Valencia - www.upv.es
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Expand Down Expand Up @@ -160,11 +160,15 @@ public String generateActionSelectionPrompt(Set<Action> actions, State state, Ac
switch (type) {
case "ClickTypeInto":
case "PasteTextInto":
case "RemoteType":
case "RemoteScrollType":
// Differentiate between types of input fields. Example: password -> Password Field
String fieldType = StringUtils.capitalize(widget.get(WdTags.WebType, "text"));
builder.append(String.format("%s: Type in %sField '%s' ", actionId, fieldType, description));
break;
case "LeftClickAt":
case "RemoteClick":
case "RemoteScrollClick":
builder.append(String.format("%s: Click on '%s' ", actionId, description));
break;
case "HistoryBackScript":
Expand Down
2 changes: 1 addition & 1 deletion testar/src/org/testar/monkey/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@

public class Main {

public static final String TESTAR_VERSION = "v2.7.22 (24-Feb-2026)";
public static final String TESTAR_VERSION = "v2.7.23 (5-Mar-2026)";

//public static final String TESTAR_DIR_PROPERTY = "DIRNAME"; //Use the OS environment to obtain TESTAR directory
public static final String SETTINGS_FILE = "test.settings";
Expand Down
Loading