From c061629d80a1cc5bcbe1f87ade20621444ac8170 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Fri, 8 May 2026 10:41:43 -0700 Subject: [PATCH 01/11] Update locators for switch to buttons --- .../test/components/ui/grids/FieldSelectionDialog.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java index 35d0a8140c..40ce8c6a7e 100644 --- a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java +++ b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java @@ -212,10 +212,10 @@ private void expandOrCollapseByFieldKey(FieldKey fieldKey, boolean expand) String oppositeIconClass = !expand ? "fa-chevron-right" : "fa-chevron-down"; WebElement expandIcon = Locator.tagWithClass("div", "field-expand-icon") - .withChild(Locator.tagWithClass("i", iconClass)) + .withChild(Locator.tagWithClass("button", iconClass)) .findElement(listItem); Locator oppositeIcon = Locator.tagWithClass("div", "field-expand-icon") - .withChild(Locator.tagWithClass("i", oppositeIconClass)); + .withChild(Locator.tagWithClass("button", oppositeIconClass)); String errorMessage; @@ -436,7 +436,7 @@ public FieldSelectionDialog setFieldLabel(String fieldName, String newFieldLabel public FieldSelectionDialog setFieldLabel(FieldKey fieldKey, String newFieldLabel) { WebElement listItem = elementCache().findSelectedField(fieldKey); - WebElement updateIcon = Locator.tagWithClass("span", "edit-inline-field__toggle").findWhenNeeded(listItem); + WebElement updateIcon = Locator.byClass( "edit-inline-field__toggle").findWhenNeeded(listItem); updateIcon.click(); WebDriverWrapper.waitFor(()->elementCache().fieldLabelEdit.isDisplayed(), From 09b8833e8aa7b918191d5763fb2ed87fac65aa9c Mon Sep 17 00:00:00 2001 From: cnathe Date: Fri, 8 May 2026 15:47:52 -0500 Subject: [PATCH 02/11] Test locator updates for button tag changes --- src/org/labkey/test/components/domain/DomainFieldRow.java | 4 ++-- .../ui/domainproperties/samples/SampleTypeDesigner.java | 2 +- .../test/components/ui/entities/ParentEntityEditPanel.java | 2 +- .../test/components/ui/files/ManageImportTemplatesDialog.java | 2 +- .../labkey/test/components/ui/grids/FieldSelectionDialog.java | 2 +- src/org/labkey/test/components/ui/navigation/ProductMenu.java | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/org/labkey/test/components/domain/DomainFieldRow.java b/src/org/labkey/test/components/domain/DomainFieldRow.java index e650c38343..f37225ae59 100644 --- a/src/org/labkey/test/components/domain/DomainFieldRow.java +++ b/src/org/labkey/test/components/domain/DomainFieldRow.java @@ -804,7 +804,7 @@ public Boolean getAllowMultipleSelections() */ public DomainFieldRow setTextChoiceValues(List values) { - WebElement button = Locator.tagWithClass("span", "container--action-button").withText("Add Values").findElement(this); + WebElement button = Locator.tagWithClass("button", "container--action-button").withText("Add Values").findElement(this); button.click(); TextChoiceValueDialog addValuesDialog = new TextChoiceValueDialog(this); @@ -814,7 +814,7 @@ public DomainFieldRow setTextChoiceValues(List values) public String setTextChoiceValuesExpectingError(List values) { - WebElement button = Locator.tagWithClass("span", "container--action-button").withText("Add Values").findElement(this); + WebElement button = Locator.tagWithClass("button", "container--action-button").withText("Add Values").findElement(this); button.click(); TextChoiceValueDialog addValuesDialog = new TextChoiceValueDialog(this); diff --git a/src/org/labkey/test/components/ui/domainproperties/samples/SampleTypeDesigner.java b/src/org/labkey/test/components/ui/domainproperties/samples/SampleTypeDesigner.java index 2b0ebfeb5c..0dac4d027d 100644 --- a/src/org/labkey/test/components/ui/domainproperties/samples/SampleTypeDesigner.java +++ b/src/org/labkey/test/components/ui/domainproperties/samples/SampleTypeDesigner.java @@ -105,7 +105,7 @@ protected class ElementCache extends EntityTypeDesigner.ElementCache protected final WebElement uniqueIdMsgCheckIcon = Locator.tagWithClass("div","uniqueid-msg") .append(Locator.tagWithClassContaining("i", "domain-panel-status-icon-green")).refindWhenNeeded(this); - public final WebElement addParentAliasButton = Locator.tagWithClassContaining("span", "container--action-button") + public final WebElement addParentAliasButton = Locator.tagWithClassContaining("button", "container--action-button") .withText("Add a Parent").findWhenNeeded(propertiesPanel); public final WebElement addAliasButton = Locator.tagWithClass("i","container--addition-icon").findWhenNeeded(this); } diff --git a/src/org/labkey/test/components/ui/entities/ParentEntityEditPanel.java b/src/org/labkey/test/components/ui/entities/ParentEntityEditPanel.java index 9c8e1b0611..d27ecc58d1 100644 --- a/src/org/labkey/test/components/ui/entities/ParentEntityEditPanel.java +++ b/src/org/labkey/test/components/ui/entities/ParentEntityEditPanel.java @@ -520,7 +520,7 @@ protected class ElementCache extends Panel.ElementCache // This is the 'Add' button that is contained inside the panel. final WebElement addButton = Locator - .tagContainingText("span", "Add") + .tagContainingText("button", "Add") .findWhenNeeded(this); public WebElement commentInput = Locator.tagWithId("textarea", "actionComments").refindWhenNeeded(getDriver()); diff --git a/src/org/labkey/test/components/ui/files/ManageImportTemplatesDialog.java b/src/org/labkey/test/components/ui/files/ManageImportTemplatesDialog.java index 624e133cd0..ab9caf4808 100644 --- a/src/org/labkey/test/components/ui/files/ManageImportTemplatesDialog.java +++ b/src/org/labkey/test/components/ui/files/ManageImportTemplatesDialog.java @@ -216,7 +216,7 @@ protected ManageImportTemplatesDialog.ElementCache elementCache() protected class ElementCache extends ModalDialog.ElementCache { - WebElement addTemplateRow = Locator.tagWithClassContaining("span", "container--action-button") + WebElement addTemplateRow = Locator.tagWithClassContaining("button", "container--action-button") .withText("Add a Template").findWhenNeeded(getComponentElement()); WebElement defaultTemplateFileLink = Locator.tagWithClass("span", "clickable-text").findWhenNeeded(getComponentElement()); diff --git a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java index 40ce8c6a7e..9fa2f77dd5 100644 --- a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java +++ b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java @@ -149,7 +149,7 @@ public FieldSelectionDialog selectAvailableField(FieldKey fieldKey) Assert.assertTrue(String.format(FIELD_NOT_AVAILABLE, fieldKey), listItem.isDisplayed()); - WebElement addIcon = Locator.tagWithClass("div", "view-field__action") + WebElement addIcon = Locator.tagWithClass("button", "view-field__action") .withChild(Locator.tagWithClass("i", "fa-plus")) .findElement(listItem); diff --git a/src/org/labkey/test/components/ui/navigation/ProductMenu.java b/src/org/labkey/test/components/ui/navigation/ProductMenu.java index 060f0111b5..3c8ee806c4 100644 --- a/src/org/labkey/test/components/ui/navigation/ProductMenu.java +++ b/src/org/labkey/test/components/ui/navigation/ProductMenu.java @@ -285,7 +285,7 @@ WebElement menuSectionLink(String headerText, String linkText) return Locator.linkWithText(linkText).findElement(menuSectionBody(headerText)); } - private final Locator.XPathLocator folderMenuItemLocator = Locator.tagWithClass("a", "menu-folder-item"); + private final Locator.XPathLocator folderMenuItemLocator = Locator.tagWithClass("button", "menu-folder-item"); private final Locator activeFolderMenuItemLocator = Locator.tagWithClass("li", "active").descendant(folderMenuItemLocator); List folderMenuItems() From fa45ff38f7d4406ee0a9267eb8e620f151628243 Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 11 May 2026 09:13:59 -0500 Subject: [PATCH 03/11] misc selenium locator updates to match anchor -> button changes --- src/org/labkey/test/components/domain/DomainFormPanel.java | 2 -- src/org/labkey/test/components/ui/grids/DetailDataPanel.java | 2 +- src/org/labkey/test/components/ui/grids/ParentDetailPanel.java | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/org/labkey/test/components/domain/DomainFormPanel.java b/src/org/labkey/test/components/domain/DomainFormPanel.java index f235c2391f..c365aedd59 100644 --- a/src/org/labkey/test/components/domain/DomainFormPanel.java +++ b/src/org/labkey/test/components/domain/DomainFormPanel.java @@ -634,8 +634,6 @@ protected class ElementCache extends DomainPanel. public final Checkbox selectAll = new Checkbox(Locator.tagWithAttributeContaining("input", "id", "domain-select-all-checkbox") .findWhenNeeded(this)); - public final WebElement toggleButton = Locator.tagWithAttributeContaining("div", "id", "domain-toggle-summary"). - findWhenNeeded(this); public final ToggleButton customFieldsViewToggle = new ToggleButton.ToggleButtonFinder(getDriver()) .withState("Detail").timeout(5000).findWhenNeeded(this); diff --git a/src/org/labkey/test/components/ui/grids/DetailDataPanel.java b/src/org/labkey/test/components/ui/grids/DetailDataPanel.java index 06c655bf8b..6af041521b 100644 --- a/src/org/labkey/test/components/ui/grids/DetailDataPanel.java +++ b/src/org/labkey/test/components/ui/grids/DetailDataPanel.java @@ -164,7 +164,7 @@ protected class ElementCache extends Component.ElementCache public Optional editButton() { - return Locator.tagWithClass("div", "detail__edit-button") + return Locator.byClass("detail__edit-button") .findOptionalElement(heading); } diff --git a/src/org/labkey/test/components/ui/grids/ParentDetailPanel.java b/src/org/labkey/test/components/ui/grids/ParentDetailPanel.java index 1a119bb1a7..2e894a8057 100644 --- a/src/org/labkey/test/components/ui/grids/ParentDetailPanel.java +++ b/src/org/labkey/test/components/ui/grids/ParentDetailPanel.java @@ -157,7 +157,7 @@ protected class ElementCache extends Component.ElementCache public WebElement panelHeading = Locator.tagWithClass("div", "panel-heading") .findWhenNeeded(this).withTimeout(2000); - public Locator editBtnLoc = Locator.tagWithClass("div", "detail__edit-button"); + public Locator editBtnLoc = Locator.byClass("detail__edit-button"); public Optional optionalEditBtn() { return editBtnLoc.findOptionalElement(panelHeading); From f53566e04785c4699547d36732491c7087f1fcea Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 11 May 2026 16:04:33 -0500 Subject: [PATCH 04/11] chevron icon locator update to button --- .../labkey/test/components/ui/grids/FieldSelectionDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java index 9fa2f77dd5..7cd2476214 100644 --- a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java +++ b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java @@ -239,7 +239,7 @@ private boolean isFieldKeyExpanded(WebElement listItem) { // As long as there is no expand icon then this field is expanded. return !Locator.tagWithClass("div", "field-expand-icon") - .withChild(Locator.tagWithClass("i", "fa-chevron-right")) + .withChild(Locator.tagWithClass("button", "fa-chevron-right")) .findWhenNeeded(listItem).isDisplayed(); } From 98bf7f659ba6b09f20856578b2a1ae579332da43 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Tue, 12 May 2026 14:29:28 -0700 Subject: [PATCH 05/11] @labkey/components v7.35.3-fb-keyboardInteraction.2 and @labkey/premium v7.14.3-fb-keyboardInteraction.2 --- src/org/labkey/test/components/react/MultiMenu.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/labkey/test/components/react/MultiMenu.java b/src/org/labkey/test/components/react/MultiMenu.java index cb16ca52c3..0e86cbe9a4 100644 --- a/src/org/labkey/test/components/react/MultiMenu.java +++ b/src/org/labkey/test/components/react/MultiMenu.java @@ -505,7 +505,7 @@ public MultiMenuFinder withButtonClass(String cls) */ public MultiMenuFinder withButtonIcon(String iconClass) { - _locator = Locators.menuContainer().withChild(BootstrapMenu.Locators.dropdownToggle().withChild(Locator.byClass(iconClass))); + _locator = Locators.menuContainer().withChild(BootstrapMenu.Locators.dropdownToggle().withDescendant(Locator.byClass(iconClass))); return this; } From dd18e51318a275ea0e5e029d91568ec8461280a7 Mon Sep 17 00:00:00 2001 From: cnathe Date: Wed, 13 May 2026 08:47:43 -0500 Subject: [PATCH 06/11] update comment --- src/org/labkey/test/tests/PackageLockJsonTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/labkey/test/tests/PackageLockJsonTest.java b/src/org/labkey/test/tests/PackageLockJsonTest.java index b9b040957b..ffe6c6e8ad 100644 --- a/src/org/labkey/test/tests/PackageLockJsonTest.java +++ b/src/org/labkey/test/tests/PackageLockJsonTest.java @@ -28,7 +28,7 @@ public class PackageLockJsonTest { private static final Set ALLOWED_DEPENDENCY_HOSTS = Set.of("registry.npmjs.org", "labkey.jfrog.io"); - // Allow-list of '@isaacs/cliui' dependencies + // Allow-list of npm alias versions used by indirect dependencies private static final Set ALLOWED_NONSTANDARD_VERSIONS = Set.of("npm:string-width@^4.2.0", "npm:strip-ansi@^6.0.1", "npm:wrap-ansi@^7.0.0"); private final List errors = new ArrayList<>(); From 9a2e55510522edff54f8eef27725f3b5c71c3542 Mon Sep 17 00:00:00 2001 From: cnathe Date: Wed, 13 May 2026 08:54:08 -0500 Subject: [PATCH 07/11] revert comment change (wrong branch) --- src/org/labkey/test/tests/PackageLockJsonTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/labkey/test/tests/PackageLockJsonTest.java b/src/org/labkey/test/tests/PackageLockJsonTest.java index ffe6c6e8ad..350efcf74e 100644 --- a/src/org/labkey/test/tests/PackageLockJsonTest.java +++ b/src/org/labkey/test/tests/PackageLockJsonTest.java @@ -28,8 +28,8 @@ public class PackageLockJsonTest { private static final Set ALLOWED_DEPENDENCY_HOSTS = Set.of("registry.npmjs.org", "labkey.jfrog.io"); - // Allow-list of npm alias versions used by indirect dependencies - private static final Set ALLOWED_NONSTANDARD_VERSIONS = Set.of("npm:string-width@^4.2.0", "npm:strip-ansi@^6.0.1", "npm:wrap-ansi@^7.0.0"); + // Allow-list of '@isaacs/cliui' dependencies + private static final Set ALLOWED_NONSTANDARD_VERSIONS = Set.of("npm:string-width@^4.2.0", "npm:strip-ansi@^6.0.1", "npm:wrap-ansi@^7.0.0", "npm:react-is@^18.3.1", "npm:react-is@^19.2.5"); private final List errors = new ArrayList<>(); private final File moduleDir; From 9f940074c8541cfd9d7b5e396f1f8d4e6f144ffc Mon Sep 17 00:00:00 2001 From: cnathe Date: Wed, 13 May 2026 08:54:41 -0500 Subject: [PATCH 08/11] revert change (wrong branch) --- src/org/labkey/test/tests/PackageLockJsonTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/labkey/test/tests/PackageLockJsonTest.java b/src/org/labkey/test/tests/PackageLockJsonTest.java index 350efcf74e..b9b040957b 100644 --- a/src/org/labkey/test/tests/PackageLockJsonTest.java +++ b/src/org/labkey/test/tests/PackageLockJsonTest.java @@ -29,7 +29,7 @@ public class PackageLockJsonTest { private static final Set ALLOWED_DEPENDENCY_HOSTS = Set.of("registry.npmjs.org", "labkey.jfrog.io"); // Allow-list of '@isaacs/cliui' dependencies - private static final Set ALLOWED_NONSTANDARD_VERSIONS = Set.of("npm:string-width@^4.2.0", "npm:strip-ansi@^6.0.1", "npm:wrap-ansi@^7.0.0", "npm:react-is@^18.3.1", "npm:react-is@^19.2.5"); + private static final Set ALLOWED_NONSTANDARD_VERSIONS = Set.of("npm:string-width@^4.2.0", "npm:strip-ansi@^6.0.1", "npm:wrap-ansi@^7.0.0"); private final List errors = new ArrayList<>(); private final File moduleDir; From 07c9d4d18a6d9f4e29449f559310527ad7cb424b Mon Sep 17 00:00:00 2001 From: cnathe Date: Wed, 13 May 2026 16:17:01 -0500 Subject: [PATCH 09/11] Selenium test fixes (mostly locator updates to match DOM changes) --- .../components/ui/files/FileUploadPanel.java | 25 +++---------------- .../ui/grids/FieldSelectionDialog.java | 6 ++--- .../ui/grids/ManageViewsDialog.java | 4 +-- .../test/pages/ReactAssayDesignerPage.java | 2 +- 4 files changed, 10 insertions(+), 27 deletions(-) diff --git a/src/org/labkey/test/components/ui/files/FileUploadPanel.java b/src/org/labkey/test/components/ui/files/FileUploadPanel.java index 4aacfd18b2..7a1fb6c69d 100644 --- a/src/org/labkey/test/components/ui/files/FileUploadPanel.java +++ b/src/org/labkey/test/components/ui/files/FileUploadPanel.java @@ -19,13 +19,11 @@ public class FileUploadPanel extends WebDriverComponent { - private Locator.XPathLocator _baseLocator = Locator.tagWithClass("div", "file-upload__container").parent(); - private final boolean _backwardsCompat; + private final Locator.XPathLocator _baseLocator = Locator.tagWithClass("div", "file-upload__container").parent(); public FileUploadPanelFinder(WebDriver driver) { super(driver); - _backwardsCompat = false; } - public FileUploadPanelFinder(WebDriver driver, boolean backwardsCompat) - { - super(driver); - _backwardsCompat = backwardsCompat; - if (backwardsCompat) - _baseLocator = Locator.tagWithClass("div", "file-upload--container").parent(); - } - - - @Override protected FileUploadPanel construct(WebElement el, WebDriver driver) { - return new FileUploadPanel(el, driver, _backwardsCompat); + return new FileUploadPanel(el, driver); } @Override diff --git a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java index 5e2bae5159..c1240b8165 100644 --- a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java +++ b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java @@ -321,7 +321,7 @@ public boolean canFieldBeRemoved(String field) public boolean canFieldBeRemoved(String field, int index) { WebElement listItem = getSelectedListItems(field).get(index); - WebElement removeIcon = Locator.tagWithClass("span", "view-field__action").findWhenNeeded(listItem); + WebElement removeIcon = Locator.tagWithClass("button", "view-field__action").findWhenNeeded(listItem); return removeIcon.isDisplayed(); } @@ -363,7 +363,7 @@ public FieldSelectionDialog removeFieldFromSelected(String field) public FieldSelectionDialog removeFieldFromSelected(String field, int index) { WebElement listItem = getSelectedListItems(field).get(index); - WebElement removeIcon = Locator.tagWithClass("span", "view-field__action").findElement(listItem); + WebElement removeIcon = Locator.tagWithClass("button", "view-field__action").findElement(listItem); getWrapper().mouseOver(removeIcon); removeIcon.click(); @@ -391,7 +391,7 @@ public FieldSelectionDialog removeAllSelectedFields() { getWrapper().log(String.format("Removing field '%s' from selected fields.", listItem.getText())); - WebElement removeIcon = Locator.tagWithClass("span", "view-field__action").findWhenNeeded(listItem); + WebElement removeIcon = Locator.tagWithClass("button", "view-field__action").findWhenNeeded(listItem); // In some usages there may be fields that are not removable. if (!removeIcon.isDisplayed()) diff --git a/src/org/labkey/test/components/ui/grids/ManageViewsDialog.java b/src/org/labkey/test/components/ui/grids/ManageViewsDialog.java index 186a49e6e0..20426f5e7e 100644 --- a/src/org/labkey/test/components/ui/grids/ManageViewsDialog.java +++ b/src/org/labkey/test/components/ui/grids/ManageViewsDialog.java @@ -203,7 +203,7 @@ public boolean canDefaultBeReverted() */ public ManageViewsDialog makeViewDefault(String viewName) { - Locator.tagWithText("span", "Make default").findElement(elementCache().viewRow(viewName)).click(); + Locator.tagWithText("button", "Make default").findElement(elementCache().viewRow(viewName)).click(); return this; } @@ -242,6 +242,6 @@ protected WebElement viewRow(String viewName) protected final WebElement deleteYesButton = Locator.button("Yes").refindWhenNeeded(this); protected final WebElement deleteNoButton = Locator.button("No").refindWhenNeeded(this); - protected final WebElement revertDefault = Locator.tagWithText("span", "Revert").refindWhenNeeded(this); + protected final WebElement revertDefault = Locator.tagWithText("button", "Revert").refindWhenNeeded(this); } } diff --git a/src/org/labkey/test/pages/ReactAssayDesignerPage.java b/src/org/labkey/test/pages/ReactAssayDesignerPage.java index f9072397f5..dd15e77c2c 100644 --- a/src/org/labkey/test/pages/ReactAssayDesignerPage.java +++ b/src/org/labkey/test/pages/ReactAssayDesignerPage.java @@ -274,7 +274,7 @@ private ReactAssayDesignerPage setTransformScript(File transformScript, boolean assertTrue("Unable to locate the transform script: " + transformScript, transformScript.exists()); expandPropertiesPanel(); - getWrapper().click(Locator.tagWithClass("span", "btn").containing("Add Script")); + getWrapper().click(Locator.buttonContainingText("Add Script")); String targetPath = transformScript.getAbsolutePath(); if (usingFileUpload) { From 470e1d0ea523d06b522b1526656a08f41cded7b0 Mon Sep 17 00:00:00 2001 From: labkey-susanh Date: Wed, 13 May 2026 17:51:04 -0700 Subject: [PATCH 10/11] Update locators and package versions --- src/org/labkey/test/components/ManageSampleStatusesPanel.java | 2 +- src/org/labkey/test/components/react/ToggleButton.java | 2 +- .../labkey/test/components/ui/grids/FieldSelectionDialog.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/org/labkey/test/components/ManageSampleStatusesPanel.java b/src/org/labkey/test/components/ManageSampleStatusesPanel.java index 3777ad8495..d88652f9e3 100644 --- a/src/org/labkey/test/components/ManageSampleStatusesPanel.java +++ b/src/org/labkey/test/components/ManageSampleStatusesPanel.java @@ -272,7 +272,7 @@ final WebElement selectedStatusItem() return Locator.tagWithClass("button", "list-group-item").withClass("active") .refindWhenNeeded(this); } - final WebElement addStatusButton = Locator.tagWithText("span", "Add New Status") + final WebElement addStatusButton = Locator.button( "Add New Status") .refindWhenNeeded(getComponentElement()); final Input labelField() { diff --git a/src/org/labkey/test/components/react/ToggleButton.java b/src/org/labkey/test/components/react/ToggleButton.java index 17401d2b5e..f08876f30b 100644 --- a/src/org/labkey/test/components/react/ToggleButton.java +++ b/src/org/labkey/test/components/react/ToggleButton.java @@ -85,7 +85,7 @@ private ToggleButton selectSecond() private boolean hasButtons() { if (hasButtons == null) - hasButtons = Locator.tag("button").existsIn(this); + hasButtons = Locator.tag("button").findElements(this).size() > 1; return hasButtons; } diff --git a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java index c1240b8165..27ea50db6e 100644 --- a/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java +++ b/src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java @@ -363,7 +363,7 @@ public FieldSelectionDialog removeFieldFromSelected(String field) public FieldSelectionDialog removeFieldFromSelected(String field, int index) { WebElement listItem = getSelectedListItems(field).get(index); - WebElement removeIcon = Locator.tagWithClass("button", "view-field__action").findElement(listItem); + WebElement removeIcon = Locator.byClass("view-field__action").findElement(listItem); getWrapper().mouseOver(removeIcon); removeIcon.click(); From e06a15178d48a152c97a98843123ec7db97da649 Mon Sep 17 00:00:00 2001 From: cnathe Date: Thu, 14 May 2026 09:40:43 -0500 Subject: [PATCH 11/11] anchor tag to button with clickable-text class --- src/org/labkey/test/components/ui/files/FileUploadPanel.java | 2 +- src/org/labkey/test/components/ui/lineage/NodeDetail.java | 2 +- src/org/labkey/test/components/ui/lineage/NodeDetailGroup.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/org/labkey/test/components/ui/files/FileUploadPanel.java b/src/org/labkey/test/components/ui/files/FileUploadPanel.java index 7a1fb6c69d..c5ff325856 100644 --- a/src/org/labkey/test/components/ui/files/FileUploadPanel.java +++ b/src/org/labkey/test/components/ui/files/FileUploadPanel.java @@ -132,7 +132,7 @@ Locator attachedFileContainer(String fileName) WebElement removeBtn(String fileName) { - return Locator.tagWithAttribute("span", "title", "Remove file") + return Locator.tagWithAttribute("button", "title", "Remove file") .findElement(attachedFileContainer(fileName).findElement(this)); } } diff --git a/src/org/labkey/test/components/ui/lineage/NodeDetail.java b/src/org/labkey/test/components/ui/lineage/NodeDetail.java index 1b3586bd38..7036ae6d1f 100644 --- a/src/org/labkey/test/components/ui/lineage/NodeDetail.java +++ b/src/org/labkey/test/components/ui/lineage/NodeDetail.java @@ -17,7 +17,7 @@ public class NodeDetail extends WebDriverComponent { private static final Locator.XPathLocator NAME_LOC = Locator.XPathLocator.union( - Locator.tagWithClass("a", "lineage-link"), + Locator.byClass("lineage-link"), Locator.tag("span")); final WebElement _el; diff --git a/src/org/labkey/test/components/ui/lineage/NodeDetailGroup.java b/src/org/labkey/test/components/ui/lineage/NodeDetailGroup.java index 02cd7fe338..ba76a9cfb9 100644 --- a/src/org/labkey/test/components/ui/lineage/NodeDetailGroup.java +++ b/src/org/labkey/test/components/ui/lineage/NodeDetailGroup.java @@ -33,7 +33,7 @@ public String getGroupName() private void showAllItems() { - Locator.tag("li").child(Locator.tagWithClass("a", "lineage-link")) + Locator.tag("li").child(Locator.byClass("lineage-link")) .findOptionalElement(this) .ifPresent(moreLink -> {