diff --git a/src/org/labkey/test/pages/assay/AssayImportPage.java b/src/org/labkey/test/pages/assay/AssayImportPage.java index f53d76c48e..b7c7f781ef 100644 --- a/src/org/labkey/test/pages/assay/AssayImportPage.java +++ b/src/org/labkey/test/pages/assay/AssayImportPage.java @@ -29,6 +29,8 @@ import java.io.File; +import static org.labkey.test.util.EscapeUtil.getTableViewFormFieldName; + public class AssayImportPage extends LabKeyPage { public AssayImportPage(WebDriver driver) @@ -38,28 +40,28 @@ public AssayImportPage(WebDriver driver) public AssayImportPage setNamedInputText(String name, String text) { - WebElement input = Locator.input(name).findElement(getDriver()); + WebElement input = Locator.input(getTableViewFormFieldName(name)).findElement(getDriver()); new Input(input, getDriver()).set(text); return this; } public AssayImportPage selectNamedFieldOption(String name, String text) { - WebElement input = Locator.xpath("//select[@name='" + name +"']").findElement(getDriver()); + WebElement input = Locator.tagWithName("select", getTableViewFormFieldName(name)).findElement(getDriver()); new OptionSelect(input).set(text); return this; } public AssayImportPage setNamedTextAreaValue(String name, String text) { - WebElement input = Locator.textarea(name).findElement(getDriver()); + WebElement input = Locator.textarea(getTableViewFormFieldName(name)).findElement(getDriver()); setFormElement(input, text); return this; } public AssayImportPage setFileField(String name, File file) { - setFormElement(Locator.input(name), file); + setFormElement(Locator.input(getTableViewFormFieldName(name)), file); return this; } @@ -93,6 +95,15 @@ public AssayImportPage selectUploadFileRadioButton() return this; } + public @Nullable String getFieldValue(String fieldName) + { + var input = Locator.input(getTableViewFormFieldName(fieldName)); + if (isElementPresent(input)) + return getFormElement(input); + + return null; + } + /** * Retrieves the file name for a field if it has been previously uploaded. In this case the server * will display a file name with an icon and a "[remove]" link. If a value has not been previously uploaded, @@ -112,11 +123,17 @@ public AssayImportPage selectUploadFileRadioButton() return StringUtils.trimToNull(text.replace("[remove]", "")); } - var fileInput = Locator.input(fieldName); - if (isElementPresent(fileInput)) - return getFormElement(fileInput); + return getFieldValue(fieldName); + } - return null; + public AssayImportPage removeFileValue(String fieldName) + { + var removeFileLink = Locator.tagWithClass("div", "lk-remove-file") + .withAttribute("data-fieldname", fieldName) + .child(Locator.tagWithText("a", "remove")); + + removeFileLink.findElement(getDriver()).click(); + return this; } /* button actions */ diff --git a/src/org/labkey/test/tests/AttachmentFieldTest.java b/src/org/labkey/test/tests/AttachmentFieldTest.java index dfe316e6f7..1d4ab55465 100644 --- a/src/org/labkey/test/tests/AttachmentFieldTest.java +++ b/src/org/labkey/test/tests/AttachmentFieldTest.java @@ -148,7 +148,6 @@ private void verifyUnavailableFile() clickAndWait(Locator.tagWithText("a", "S1")); clickAndWait(Locator.tagWithClass("a", "labkey-text-link").withText("edit")); waitForElement(Locator.tagContainingText("div", "jpg_sample.jpg (unavailable)")); - assertElementNotPresent(Locator.tagWithAttributeContaining("img", "src", "/_icons/image.png")); } @Test diff --git a/src/org/labkey/test/util/EscapeUtil.java b/src/org/labkey/test/util/EscapeUtil.java index 643dfb2f76..8c3fe49aa1 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 getTableViewFormFieldName(String columnName) + { + return getFormFieldName(columnName, null); + } + /** * Escapes special characters in a column name to be used as a form field name. * See associated {@link org.labkey.api.query.QueryUpdateForm#getFormFieldName}