Skip to content

Commit cc17d32

Browse files
committed
chore: return Java locator code from toString() only for normalized locators
1 parent ce0596d commit cc17d32

4 files changed

Lines changed: 16 additions & 27 deletions

File tree

‎playwright/src/main/java/com/microsoft/playwright/impl/LocalUtils.java‎

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,4 @@ public Pattern globToRegex(String glob, String baseURL, boolean webSocketUrl) {
7878
String regex = json.get("regex").getAsString();
7979
return Pattern.compile(regex);
8080
}
81-
82-
String asLocatorDescription(String selector) {
83-
JsonObject params = new JsonObject();
84-
params.addProperty("selector", selector);
85-
params.addProperty("sdkLanguage", "java");
86-
JsonObject json = sendMessage("asLocatorDescription", params, NO_TIMEOUT).getAsJsonObject();
87-
return json.get("description").getAsString();
88-
}
8981
}

‎playwright/src/main/java/com/microsoft/playwright/impl/LocatorImpl.java‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -695,14 +695,14 @@ public Locator within(Locator locator) {
695695

696696
@Override
697697
public String toString() {
698-
if (stringRepresentation == null) {
699-
try {
700-
stringRepresentation = frame.connection.localUtils().asLocatorDescription(selector);
701-
} catch (PlaywrightException e) {
702-
return "Locator@" + selector;
703-
}
698+
if (stringRepresentation != null) {
699+
return stringRepresentation;
700+
}
701+
String description = description();
702+
if (description != null) {
703+
return description;
704704
}
705-
return stringRepresentation;
705+
return "Locator@" + selector;
706706
}
707707

708708
@Override

‎playwright/src/test/java/com/microsoft/playwright/TestLocatorConvenience.java‎

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package com.microsoft.playwright;
1818

19-
import com.microsoft.playwright.options.AriaRole;
2019
import org.junit.jupiter.api.Test;
2120

2221
import static java.util.Arrays.asList;
@@ -31,10 +30,10 @@ void shouldHaveANicePreview() {
3130
Locator check = page.locator("#check");
3231
JSHandle text = inner.evaluateHandle("e => e.firstChild");
3332
page.evaluate("() => 1"); // Give them a chance to calculate the preview.
34-
assertEquals("locator(\"#outer\")", outer.toString());
35-
assertEquals("locator(\"#outer\").locator(\"#inner\")", inner.toString());
33+
assertEquals("Locator@#outer", outer.toString());
34+
assertEquals("Locator@#outer >> #inner", inner.toString());
3635
assertEquals("JSHandle@#text=Text,↵more text", text.toString());
37-
assertEquals("locator(\"#check\")", check.toString());
36+
assertEquals("Locator@#check", check.toString());
3837
}
3938

4039
@Test
@@ -225,15 +224,15 @@ void descriptionShouldReturnLastDescriptionForMultipleCalls() {
225224

226225
@Test
227226
void toStringShouldReturnFormattedLocator() {
228-
Locator locator = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit"));
229-
assertEquals("getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName(\"Submit\"))", locator.toString());
230-
assertNull(locator.description());
227+
page.setContent("<div>Hello</div>");
228+
Locator locator = page.locator("div");
229+
assertTrue(locator.toString().startsWith("Locator@"));
231230
}
232231

233232
@Test
234233
void toStringShouldPreferDescription() {
235-
Locator locator = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).describe("Submit button");
236-
assertEquals("Submit button", locator.toString());
237-
assertEquals(locator.description(), locator.toString());
234+
page.setContent("<div>Hello</div>");
235+
Locator locator = page.locator("div").describe("my div");
236+
assertEquals("my div", locator.toString());
238237
}
239238
}

‎playwright/src/test/java/com/microsoft/playwright/TestPageAriaSnapshotAI.java‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.microsoft.playwright.junit.FixtureTest;
44
import com.microsoft.playwright.junit.UsePlaywright;
5-
import com.microsoft.playwright.options.AriaRole;
65
import com.microsoft.playwright.options.AriaSnapshotMode;
76
import org.junit.jupiter.api.Test;
87

@@ -201,7 +200,6 @@ void shouldNormalizeRefLocatorToLocatorCode(Page page) {
201200

202201
Locator normalized = page.getByRef("e2").normalize();
203202
assertEquals("getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName(\"Submit\"))", normalized.toString());
204-
assertEquals(page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Submit")).toString(), normalized.toString());
205203

206204
PlaywrightException e = assertThrows(PlaywrightException.class, () -> page.getByRef("e1000").normalize());
207205
assertTrue(e.getMessage().contains("No element matching aria-ref=e1000"), e.getMessage());

0 commit comments

Comments
 (0)