Skip to content
38 changes: 19 additions & 19 deletions src/org/labkey/test/components/ui/grids/FieldSelectionDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import java.util.List;
import java.util.stream.Collectors;

import static org.labkey.test.util.TextUtils.normalizeSpace;
import static org.labkey.test.util.selenium.WebElementUtils.getTextContent;

/**
Expand Down Expand Up @@ -180,13 +181,13 @@ public WebElement getAvailableFieldElement(FieldKey fieldKey)
if(iterator.hasNext())
{
// If the field is already expanded don't try to expand it.
if(!isFieldKeyExpanded(elementCache().findAvailableField(fieldKey.toString())))
expandOrCollapseByFieldKey(fieldKey.toString(), true);
if(!isFieldKeyExpanded(elementCache().findAvailableField(fieldKey)))
expandOrCollapseByFieldKey(fieldKey, true);
}

}

return elementCache().findAvailableField(fieldKey.toString());
return elementCache().findAvailableField(fieldKey);
}

/**
Expand All @@ -195,7 +196,7 @@ public WebElement getAvailableFieldElement(FieldKey fieldKey)
* @param fieldKey The data-fieldkey value of the field to expand.
* @param expand True to expand false to collapse.
*/
private void expandOrCollapseByFieldKey(String fieldKey, boolean expand)
private void expandOrCollapseByFieldKey(FieldKey fieldKey, boolean expand)
{

WebElement listItem = elementCache().findAvailableField(fieldKey);
Expand Down Expand Up @@ -433,7 +434,7 @@ public FieldSelectionDialog setFieldLabel(String fieldName, String newFieldLabel
*/
public FieldSelectionDialog setFieldLabel(FieldKey fieldKey, String newFieldLabel)
{
WebElement listItem = elementCache().findSelectedField(fieldKey.toString());
WebElement listItem = elementCache().findSelectedField(fieldKey);
WebElement updateIcon = Locator.tagWithClass("span", "edit-inline-field__toggle").findWhenNeeded(listItem);
updateIcon.click();

Expand All @@ -453,9 +454,9 @@ public FieldSelectionDialog setFieldLabel(FieldKey fieldKey, String newFieldLabe

getWrapper().mouseOver(elementCache().title); // Dismiss tooltip

WebDriverWrapper.waitFor(()->!elementCache().fieldLabelEdit.isDisplayed() &&
elementCache().getListItemElement(elementCache().selectedFieldsPanel, newFieldLabel).isDisplayed(),
WebDriverWrapper.waitFor(()->!elementCache().fieldLabelEdit.isDisplayed(),
String.format("New field label '%s' is not in the list.", newFieldLabel), 500);
Assert.assertEquals("Label after update", normalizeSpace(newFieldLabel), elementCache().getFieldLabel(fieldKey));

return this;
}
Expand Down Expand Up @@ -503,10 +504,10 @@ private List<WebElement> getSelectedListItems(String fieldLabel)
* @param beforeTarget Will the field being moved go before (above) or after (below) the target field.
* @return This dialog.
*/
public FieldSelectionDialog repositionField(String fieldToMove, String targetField, boolean beforeTarget)
public FieldSelectionDialog repositionField(FieldKey fieldToMove, FieldKey targetField, boolean beforeTarget)
{
WebElement elementToMove = elementCache().getListItemElement(elementCache().selectedFieldsPanel, fieldToMove);
WebElement elementTarget = elementCache().getListItemElement(elementCache().selectedFieldsPanel, targetField);
WebElement elementToMove = elementCache().findSelectedField(fieldToMove);
WebElement elementTarget = elementCache().findSelectedField(targetField);

int yBefore = elementToMove.getRect().getY();

Expand Down Expand Up @@ -633,28 +634,27 @@ protected List<WebElement> getListItemElements(WebElement panel, String fieldLab
.findElements(panel);
}

// Will get the first list item that matches the fieldLabel.
protected WebElement getListItemElement(WebElement panel, String fieldLabel)
protected String getFieldLabel(FieldKey fieldKey)
{
return Locator.tagWithClass("div", "list-group-item")
.withDescendant(Locator.tagWithClass("div", "field-caption").withText(fieldLabel))
.findElement(panel);
return Locator.tagWithClass("div", "field-caption")
.findElement(findFieldRow(fieldKey, selectedFieldsPanel))
.getText();
}

protected WebElement findSelectedField(String fieldKey)
protected WebElement findSelectedField(FieldKey fieldKey)
{
return findFieldRow(fieldKey, selectedFieldsPanel);
}

protected WebElement findAvailableField(String fieldKey)
protected WebElement findAvailableField(FieldKey fieldKey)
{
return findFieldRow(fieldKey, availableFieldsPanel);
}

protected WebElement findFieldRow(String fieldKey, WebElement panel)
protected WebElement findFieldRow(FieldKey fieldKey, WebElement panel)
{
return Locator.tagWithClass("div", "list-group-item")
.withAttributeIgnoreCase("data-fieldkey", fieldKey)
.withAttributeIgnoreCase("data-fieldkey", fieldKey.toString())
.findElement(panel);
}

Expand Down
10 changes: 3 additions & 7 deletions src/org/labkey/test/selenium/ReclickingWebElement.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
*/
package org.labkey.test.selenium;

import org.apache.commons.lang3.Strings;
import org.apache.commons.lang3.mutable.Mutable;
import org.apache.commons.lang3.mutable.MutableObject;
import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -212,18 +211,15 @@ private void revealElement(WebElement el, String shortMessage)

if (!blockResolved)
{
// Move mouse to corner to dismiss tooltips
new Actions(getDriver()).moveToLocation(0,0).perform();

Locator.XPathLocator interceptingElLoc = parseInterceptingElementLoc(shortMessage);
if (interceptingElLoc != null)
{
List<WebElement> interceptingElements = interceptingElLoc.findElements(getDriver());
TestLogger.debug("Found %s element(s) matching extracted locator: %s".formatted(interceptingElements.size(), shortMessage));

if (Strings.CI.containsAny(interceptingElLoc.toString(), "popover", "ws-pre-wrap", "tip"))
{
// Move mouse to corner to dismiss tooltips
new Actions(getDriver()).moveToLocation(0,0).perform();
}

if (interceptingElements.size() == 1)
{
//noinspection ResultOfMethodCallIgnored
Expand Down
5 changes: 2 additions & 3 deletions src/org/labkey/test/tests/LinkedSchemaTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
import org.labkey.test.util.AuditLogHelper;
import org.labkey.test.util.DataRegionTable;
import org.labkey.test.util.LogMethod;
import org.labkey.test.util.PortalHelper;
import org.labkey.test.util.SchemaHelper;
import org.labkey.test.util.TestDataGenerator;
import org.labkey.test.util.exp.DataClassAPIHelper;
Expand Down Expand Up @@ -1057,15 +1056,15 @@ private void createExperiment(String externalProject, String subFolder, String s
goToProjectHome(externalProject);
clickTab("Experiment");
waitAndClickAndWait(Locator.linkContainingText("Create Run Group"));
setFormElement(Locator.name("name"), "Parent Run Group");
setFormElement(Locator.name("Name"), "Parent Run Group");
clickButton("Submit");

_containerHelper.createSubfolder(externalProject, subFolder);

// Create a RunGroup in the subfolder.
clickTab("Experiment");
waitAndClickAndWait(Locator.linkContainingText("Create Run Group"));
setFormElement(Locator.name("name"), subFolderRunGroup);
setFormElement(Locator.name("Name"), subFolderRunGroup);
clickButton("Submit");

}
Expand Down