Skip to content

Commit 0deadc2

Browse files
authored
chore: roll driver to 1.56.0-beta (#1849)
1 parent eb1fea9 commit 0deadc2

20 files changed

+304
-51
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ Playwright is a Java library to automate [Chromium](https://www.chromium.org/Hom
1010

1111
| | Linux | macOS | Windows |
1212
| :--- | :---: | :---: | :---: |
13-
| Chromium <!-- GEN:chromium-version -->140.0.7339.16<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
13+
| Chromium <!-- GEN:chromium-version -->141.0.7390.37<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
1414
| WebKit <!-- GEN:webkit-version -->26.0<!-- GEN:stop --> ||||
15-
| Firefox <!-- GEN:firefox-version -->141.0<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
15+
| Firefox <!-- GEN:firefox-version -->142.0.1<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
1616

1717
## Documentation
1818

examples/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<name>Playwright Client Examples</name>
1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
13-
<playwright.version>1.55.0</playwright.version>
13+
<playwright.version>1.56.0</playwright.version>
1414
</properties>
1515
<dependencies>
1616
<dependency>

playwright/src/main/java/com/microsoft/playwright/BrowserContext.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,7 @@
4646
public interface BrowserContext extends AutoCloseable {
4747

4848
/**
49-
* <strong>NOTE:</strong> Only works with Chromium browser's persistent context.
50-
*
51-
* <p> Emitted when new background page is created in the context.
52-
* <pre>{@code
53-
* context.onBackgroundPage(backgroundPage -> {
54-
* System.out.println(backgroundPage.url());
55-
* });
56-
* }</pre>
49+
* @deprecated Background pages have been removed from Chromium together with Manifest V2 extensions.
5750
*/
5851
void onBackgroundPage(Consumer<Page> handler);
5952
/**
@@ -588,9 +581,7 @@ public WaitForPageOptions setTimeout(double timeout) {
588581
*/
589582
void addInitScript(Path script);
590583
/**
591-
* <strong>NOTE:</strong> Background pages are only supported on Chromium-based browsers.
592-
*
593-
* <p> All existing background pages in the context.
584+
* @deprecated Background pages have been removed from Chromium together with Manifest V2 extensions.
594585
*
595586
* @since v1.11
596587
*/

playwright/src/main/java/com/microsoft/playwright/Page.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5729,6 +5729,20 @@ default boolean isVisible(String selector) {
57295729
* @since v1.8
57305730
*/
57315731
Keyboard keyboard();
5732+
/**
5733+
* Returns up to (currently) 200 last console messages from this page. See {@link
5734+
* com.microsoft.playwright.Page#onConsoleMessage Page.onConsoleMessage()} for more details.
5735+
*
5736+
* @since v1.56
5737+
*/
5738+
List<ConsoleMessage> consoleMessages();
5739+
/**
5740+
* Returns up to (currently) 200 last page errors from this page. See {@link com.microsoft.playwright.Page#onPageError
5741+
* Page.onPageError()} for more details.
5742+
*
5743+
* @since v1.56
5744+
*/
5745+
List<String> pageErrors();
57325746
/**
57335747
* The method returns an element locator that can be used to perform actions on this page / frame. Locator is resolved to
57345748
* the element immediately before performing an action, so a series of actions on the same locator can in fact be performed
@@ -6053,6 +6067,21 @@ default ElementHandle querySelector(String selector) {
60536067
* @since v1.9
60546068
*/
60556069
List<ElementHandle> querySelectorAll(String selector);
6070+
/**
6071+
* Returns up to (currently) 100 last network request from this page. See {@link com.microsoft.playwright.Page#onRequest
6072+
* Page.onRequest()} for more details.
6073+
*
6074+
* <p> Returned requests should be accessed immediately, otherwise they might be collected to prevent unbounded memory growth
6075+
* as new requests come in. Once collected, retrieving most information about the request is impossible.
6076+
*
6077+
* <p> Note that requests reported through the {@link com.microsoft.playwright.Page#onRequest Page.onRequest()} request are not
6078+
* collected, so there is a trade off between efficient memory usage with {@link com.microsoft.playwright.Page#requests
6079+
* Page.requests()} and the amount of available information reported through {@link com.microsoft.playwright.Page#onRequest
6080+
* Page.onRequest()}.
6081+
*
6082+
* @since v1.56
6083+
*/
6084+
List<Request> requests();
60566085
/**
60576086
* When testing a web page, sometimes unexpected overlays like a "Sign up" dialog appear and block actions you want to
60586087
* automate, e.g. clicking a button. These overlays don't always show up in the same way or at the same time, making them

playwright/src/main/java/com/microsoft/playwright/impl/AssertionsBase.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,15 @@ void expectImpl(String expression, FrameExpectOptions expectOptions, Object expe
6262
if (!log.isEmpty()) {
6363
log = "\nCall log:\n" + log;
6464
}
65+
if (result.errorMessage != null) {
66+
message += "\n" + result.errorMessage;
67+
}
6568
if (expected == null) {
6669
throw new AssertionFailedError(message + log);
6770
}
6871
ValueWrapper expectedValue = formatValue(expected);
6972
ValueWrapper actualValue = formatValue(actual);
70-
message += ": " + expectedValue.getStringRepresentation() + "\nReceived: " + actualValue.getStringRepresentation() + "\n";
73+
message += "\nExpected: " + expectedValue.getStringRepresentation() + "\nReceived: " + actualValue.getStringRepresentation() + "\n";
7174
throw new AssertionFailedError(message + log, expectedValue, actualValue);
7275
}
7376
}

playwright/src/main/java/com/microsoft/playwright/impl/BrowserContextImpl.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@
3434
import java.util.function.Predicate;
3535
import java.util.regex.Pattern;
3636

37-
import static com.microsoft.playwright.impl.Serialization.addHarUrlFilter;
38-
import static com.microsoft.playwright.impl.Serialization.gson;
37+
import static com.microsoft.playwright.impl.Serialization.*;
3938
import static com.microsoft.playwright.impl.Utils.*;
4039
import static java.nio.charset.StandardCharsets.UTF_8;
4140
import static java.nio.file.Files.readAllBytes;
@@ -731,9 +730,12 @@ protected void handleEvent(String event, JsonObject params) {
731730
bindingCall.call(binding);
732731
}
733732
} else if ("console".equals(event)) {
734-
ConsoleMessageImpl message = new ConsoleMessageImpl(connection, params);
733+
PageImpl page = null;
734+
if (params.has("page")) {
735+
page = connection.getExistingObject(params.getAsJsonObject("page").get("guid").getAsString());
736+
}
737+
ConsoleMessageImpl message = new ConsoleMessageImpl(connection, params, page);
735738
listeners.notify(BrowserContextImpl.EventType.CONSOLE, message);
736-
PageImpl page = message.page();
737739
if (page != null) {
738740
page.listeners.notify(PageImpl.EventType.CONSOLE, message);
739741
}
@@ -781,14 +783,7 @@ protected void handleEvent(String event, JsonObject params) {
781783
page.listeners.notify(PageImpl.EventType.RESPONSE, response);
782784
}
783785
} else if ("pageError".equals(event)) {
784-
SerializedError error = gson().fromJson(params.getAsJsonObject("error"), SerializedError.class);
785-
String errorStr = "";
786-
if (error.error != null) {
787-
errorStr = error.error.name + ": " + error.error.message;
788-
if (error.error.stack != null && !error.error.stack.isEmpty()) {
789-
errorStr += "\n" + error.error.stack;
790-
}
791-
}
786+
String errorStr = parseError(params.getAsJsonObject("error"));
792787
PageImpl page;
793788
try {
794789
page = connection.getExistingObject(params.getAsJsonObject("page").get("guid").getAsString());

playwright/src/main/java/com/microsoft/playwright/impl/ConsoleMessageImpl.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,12 @@
2626

2727
public class ConsoleMessageImpl implements ConsoleMessage {
2828
private final Connection connection;
29-
private PageImpl page;
29+
private final PageImpl page;
3030
private final JsonObject initializer;
3131

32-
public ConsoleMessageImpl(Connection connection, JsonObject initializer) {
32+
public ConsoleMessageImpl(Connection connection, JsonObject initializer, PageImpl page) {
3333
this.connection = connection;
34-
// Note: currently, we only report console messages for pages and they always have a page.
35-
// However, in the future we might report console messages for service workers or something else,
36-
// where page() would be null.
37-
if (initializer.has("page")) {
38-
page = connection.getExistingObject(initializer.getAsJsonObject("page").get("guid").getAsString());
39-
}
34+
this.page = page;
4035
this.initializer = initializer;
4136
}
4237

playwright/src/main/java/com/microsoft/playwright/impl/PageImpl.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.regex.Pattern;
3232

3333
import static com.microsoft.playwright.impl.Serialization.gson;
34+
import static com.microsoft.playwright.impl.Serialization.parseError;
3435
import static com.microsoft.playwright.impl.Utils.*;
3536
import static com.microsoft.playwright.options.ScreenshotType.JPEG;
3637
import static com.microsoft.playwright.options.ScreenshotType.PNG;
@@ -567,6 +568,17 @@ public List<ElementHandle> querySelectorAll(String selector) {
567568
return mainFrame.querySelectorAll(selector);
568569
}
569570

571+
@Override
572+
public List<Request> requests() {
573+
JsonObject json = sendMessage("requests", new JsonObject(), NO_TIMEOUT).getAsJsonObject();
574+
JsonArray requests = json.getAsJsonArray("requests");
575+
List<Request> result = new ArrayList<>();
576+
for (JsonElement item : requests) {
577+
result.add(connection.getExistingObject(item.getAsJsonObject().get("guid").getAsString()));
578+
}
579+
return result;
580+
}
581+
570582
@Override
571583
public void addLocatorHandler(Locator locator, Consumer<Locator> handler, AddLocatorHandlerOptions options) {
572584
LocatorImpl locatorImpl = (LocatorImpl) locator;
@@ -983,6 +995,29 @@ public Keyboard keyboard() {
983995
return keyboard;
984996
}
985997

998+
@Override
999+
public List<ConsoleMessage> consoleMessages() {
1000+
JsonObject json = sendMessage("consoleMessages", new JsonObject(), NO_TIMEOUT).getAsJsonObject();
1001+
JsonArray messages = json.getAsJsonArray("messages");
1002+
List<ConsoleMessage> result = new ArrayList<>();
1003+
for (JsonElement item : messages) {
1004+
result.add(new ConsoleMessageImpl(connection, item.getAsJsonObject(), this));
1005+
}
1006+
return result;
1007+
}
1008+
1009+
@Override
1010+
public List<String> pageErrors() {
1011+
JsonObject json = sendMessage("pageErrors", new JsonObject(), NO_TIMEOUT).getAsJsonObject();
1012+
JsonArray errors = json.getAsJsonArray("errors");
1013+
List<String> result = new ArrayList<>();
1014+
for (JsonElement item : errors) {
1015+
String errorStr = parseError(item.getAsJsonObject());
1016+
result.add(errorStr);
1017+
}
1018+
return result;
1019+
}
1020+
9861021
@Override
9871022
public Locator locator(String selector, LocatorOptions options) {
9881023
return mainFrame.locator(selector, convertType(options, Frame.LocatorOptions.class));

playwright/src/main/java/com/microsoft/playwright/impl/Protocol.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ class FrameExpectOptions {
114114
class FrameExpectResult {
115115
boolean matches;
116116
SerializedValue received;
117+
String errorMessage;
117118
List<String> log;
118119
}
119120

playwright/src/main/java/com/microsoft/playwright/impl/Serialization.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,18 @@ static List<String> parseStringList(JsonArray array) {
423423
return result;
424424
}
425425

426+
static String parseError(JsonObject object) {
427+
SerializedError error = gson().fromJson(object, SerializedError.class);
428+
String errorStr = "";
429+
if (error.error != null) {
430+
errorStr = error.error.name + ": " + error.error.message;
431+
if (error.error.stack != null && !error.error.stack.isEmpty()) {
432+
errorStr += "\n" + error.error.stack;
433+
}
434+
}
435+
return errorStr;
436+
}
437+
426438
private static class OptionalSerializer implements JsonSerializer<Optional<?>> {
427439
private static boolean isSupported(Type type) {
428440
return new TypeToken<Optional<Media>>() {}.getType().getTypeName().equals(type.getTypeName()) ||

0 commit comments

Comments
 (0)