From c3e8a96ed0d2944fa4a7256691580d667261e870 Mon Sep 17 00:00:00 2001 From: rconner46 Date: Wed, 21 May 2025 09:28:35 -0500 Subject: [PATCH] Add Partial Link Text Strategy --- .../auto/pageobjectmodel/base/LocatedBy.java | 10 ++++++++++ .../auto/pageobjectmodel/enums/Strategy.java | 2 ++ .../auto/pageobjectmodel/base/LocatedByTest.java | 12 ++++++++++++ 3 files changed, 24 insertions(+) diff --git a/auto-sdk-java-page-object/src/main/java/com/applause/auto/pageobjectmodel/base/LocatedBy.java b/auto-sdk-java-page-object/src/main/java/com/applause/auto/pageobjectmodel/base/LocatedBy.java index 94efc5c..078dc76 100644 --- a/auto-sdk-java-page-object/src/main/java/com/applause/auto/pageobjectmodel/base/LocatedBy.java +++ b/auto-sdk-java-page-object/src/main/java/com/applause/auto/pageobjectmodel/base/LocatedBy.java @@ -139,6 +139,16 @@ public static By linkText(final String selector) { return By.linkText(selector); } + /** + * Returns a By locator for a partial link text. + * + * @param selector the name, corresponding to the value of one or several elements' link text + * @return the By locator corresponding to that selector + */ + public static By partialLinkText(final String selector) { + return By.partialLinkText(selector); + } + /** * Returns a By locator for specified accessibility ID. Mobile-only. * diff --git a/auto-sdk-java-page-object/src/main/java/com/applause/auto/pageobjectmodel/enums/Strategy.java b/auto-sdk-java-page-object/src/main/java/com/applause/auto/pageobjectmodel/enums/Strategy.java index 803b7f5..9d38300 100644 --- a/auto-sdk-java-page-object/src/main/java/com/applause/auto/pageobjectmodel/enums/Strategy.java +++ b/auto-sdk-java-page-object/src/main/java/com/applause/auto/pageobjectmodel/enums/Strategy.java @@ -44,6 +44,8 @@ public enum Strategy { TAGNAME("By.tagName", LocatedBy::tagName), /** Locate by Link Text */ LINKTEXT("By.linkText", LocatedBy::linkText), + /** Locate by Parial Link Text */ + PARTIAL_LINKTEXT("By.partialLinkText", LocatedBy::partialLinkText), /** Locate by Accessibility ID */ ACCESSIBILITYID("By.AccessibilityId", LocatedBy::accessibilityId), /** Locate using Android UI Automator */ diff --git a/auto-sdk-java-page-object/src/test/java/com/applause/auto/pageobjectmodel/base/LocatedByTest.java b/auto-sdk-java-page-object/src/test/java/com/applause/auto/pageobjectmodel/base/LocatedByTest.java index 51d5e6e..48add31 100644 --- a/auto-sdk-java-page-object/src/test/java/com/applause/auto/pageobjectmodel/base/LocatedByTest.java +++ b/auto-sdk-java-page-object/src/test/java/com/applause/auto/pageobjectmodel/base/LocatedByTest.java @@ -149,6 +149,18 @@ public void testLinkText() { assertEquals(by.toString(), "By.linkText: test"); } + @Test + public void testPartialLinkText() { + logger.info("STEP 1: Create a new By with partial link text selector \"est\"."); + By by = LocatedBy.partialLinkText("est"); + + logger.info("STEP 2: Assert that we got a ByPartialLinkText."); + assertTrue(by instanceof By.ByPartialLinkText); + + logger.info("STEP 3: Assert that it has selector \"est\"."); + assertEquals(by.toString(), "By.partialLinkText: est"); + } + @Test public void testAccessibilityId() { logger.info("STEP 1: Create a new By with accessibility ID selector \"test\".");