diff --git a/src/org/labkey/test/pages/query/UpdateQueryRowPage.java b/src/org/labkey/test/pages/query/UpdateQueryRowPage.java index dcb2efa47e..7c265ebca7 100644 --- a/src/org/labkey/test/pages/query/UpdateQueryRowPage.java +++ b/src/org/labkey/test/pages/query/UpdateQueryRowPage.java @@ -136,6 +136,12 @@ public UpdateQueryRowPage setField(String fieldName, OptionSelect.SelectOption o return this; } + public UpdateQueryRowPage setMultiValueField(String fieldName, OptionSelect.SelectOption option) + { + new OptionSelect<>(elementCache().findField(fieldName, true)).selectOption(option); + return this; + } + public String getTextInputValue(String fieldName) { var input = new Input(elementCache().findField(fieldName), getDriver()); @@ -182,15 +188,20 @@ protected class ElementCache extends LabKeyPage.ElementCache { private final Map fieldMap = new HashMap<>(); - WebElement findField(String name) + WebElement findField(String name, boolean multiValue) { if (!fieldMap.containsKey(name)) { - fieldMap.put(name, Locator.name(EscapeUtil.getFormFieldName(name)).findElement(this)); + fieldMap.put(name, Locator.name(EscapeUtil.getFormFieldName(name, multiValue)).findElement(this)); } return fieldMap.get(name); } + WebElement findField(String name) + { + return findField(name, false); + } + final WebElement submitButton = Locator.lkButton("Submit").findWhenNeeded(this); } } diff --git a/src/org/labkey/test/util/EscapeUtil.java b/src/org/labkey/test/util/EscapeUtil.java index 643dfb2f76..6977dd0ba9 100644 --- a/src/org/labkey/test/util/EscapeUtil.java +++ b/src/org/labkey/test/util/EscapeUtil.java @@ -266,6 +266,11 @@ public static String getFormFieldName(String columnName) return getFormFieldName(columnName, FORM_FIELD_PREFIX); } + public static String getFormFieldName(String columnName, boolean multiValue) + { + return getFormFieldName(columnName, (multiValue ? "[]" : "") + FORM_FIELD_PREFIX); + } + /** * Escapes special characters in a column name to be used as a form field name. * See associated {@link org.labkey.api.query.QueryUpdateForm#getFormFieldName}