1
0
mirror of synced 2026-08-05 23:16:54 +00:00

chore: roll driver 1.38.0-alpha-sep-10-2023 (#1380)

This commit is contained in:
Yury Semikhatsky
2023-09-12 09:10:13 -07:00
committed by GitHub
parent 883487772a
commit 5394b5d9b3
11 changed files with 68 additions and 50 deletions
+2 -2
View File
@@ -11,9 +11,9 @@ Playwright is a Java library to automate [Chromium](https://www.chromium.org/Hom
| | Linux | macOS | Windows |
| :--- | :---: | :---: | :---: |
| Chromium <!-- GEN:chromium-version -->117.0.5938.35<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Chromium <!-- GEN:chromium-version -->117.0.5938.48<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| WebKit <!-- GEN:webkit-version -->17.0<!-- GEN:stop --> | ✅ | ✅ | ✅ |
| Firefox <!-- GEN:firefox-version -->115.0<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Firefox <!-- GEN:firefox-version -->117.0<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Headless execution is supported for all the browsers on all platforms. Check out [system requirements](https://playwright.dev/java/docs/next/intro/#system-requirements) for details.
@@ -128,14 +128,14 @@ public interface BrowserContext extends AutoCloseable {
void offPage(Consumer<Page> handler);
/**
* Emitted when unhandled exceptions occur on any pages created through this context. To only listen for {@code pageError}
* events from a particular page, use {@link Page#onPageError Page.onPageError()}.
* Emitted when exception is unhandled in any of the pages in this context. To listen for errors from a particular page,
* use {@link Page#onPageError Page.onPageError()} instead.
*/
void onPageError(Consumer<PageError> handler);
void onWebError(Consumer<WebError> handler);
/**
* Removes handler that was previously added with {@link #onPageError onPageError(handler)}.
* Removes handler that was previously added with {@link #onWebError onWebError(handler)}.
*/
void offPageError(Consumer<PageError> handler);
void offWebError(Consumer<WebError> handler);
/**
* Emitted when a request is issued from any pages created through this context. The [request] object is read-only. To only
@@ -1582,7 +1582,7 @@ public interface ElementHandle extends JSHandle {
* href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control">control</a>, the control will be filled
* instead.
*
* <p> To send fine-grained keyboard events, use {@link Keyboard#type Keyboard.type()}.
* <p> To send fine-grained keyboard events, use {@link Locator#pressSequentially Locator.pressSequentially()}.
*
* @param value Value to set for the {@code <input>}, {@code <textarea>} or {@code [contenteditable]} element.
* @since v1.8
@@ -1600,7 +1600,7 @@ public interface ElementHandle extends JSHandle {
* href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control">control</a>, the control will be filled
* instead.
*
* <p> To send fine-grained keyboard events, use {@link Keyboard#type Keyboard.type()}.
* <p> To send fine-grained keyboard events, use {@link Locator#pressSequentially Locator.pressSequentially()}.
*
* @param value Value to set for the {@code <input>}, {@code <textarea>} or {@code [contenteditable]} element.
* @since v1.8
@@ -2450,8 +2450,9 @@ public interface ElementHandle extends JSHandle {
*/
String textContent();
/**
* @deprecated Use locator-based {@link Locator#pressSequentially Locator.pressSequentially()} instead. Read more about <a
* href="https://playwright.dev/java/docs/locators">locators</a>.
* @deprecated In most cases, you should use {@link Locator#fill Locator.fill()} instead. You only need to press keys one by one if
* there is special keyboard handling on the page - in this case use {@link Locator#pressSequentially
* Locator.pressSequentially()}.
*
* @param text A text to type into a focused element.
* @since v1.8
@@ -2460,8 +2461,9 @@ public interface ElementHandle extends JSHandle {
type(text, null);
}
/**
* @deprecated Use locator-based {@link Locator#pressSequentially Locator.pressSequentially()} instead. Read more about <a
* href="https://playwright.dev/java/docs/locators">locators</a>.
* @deprecated In most cases, you should use {@link Locator#fill Locator.fill()} instead. You only need to press keys one by one if
* there is special keyboard handling on the page - in this case use {@link Locator#pressSequentially
* Locator.pressSequentially()}.
*
* @param text A text to type into a focused element.
* @since v1.8
@@ -2987,7 +2987,7 @@ public interface Frame {
* href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control">control</a>, the control will be filled
* instead.
*
* <p> To send fine-grained keyboard events, use {@link Frame#type Frame.type()}.
* <p> To send fine-grained keyboard events, use {@link Locator#pressSequentially Locator.pressSequentially()}.
*
* @param selector A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used.
* @param value Value to fill for the {@code <input>}, {@code <textarea>} or {@code [contenteditable]} element.
@@ -3006,7 +3006,7 @@ public interface Frame {
* href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control">control</a>, the control will be filled
* instead.
*
* <p> To send fine-grained keyboard events, use {@link Frame#type Frame.type()}.
* <p> To send fine-grained keyboard events, use {@link Locator#pressSequentially Locator.pressSequentially()}.
*
* @param selector A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used.
* @param value Value to fill for the {@code <input>}, {@code <textarea>} or {@code [contenteditable]} element.
@@ -4677,8 +4677,9 @@ public interface Frame {
*/
String title();
/**
* @deprecated Use locator-based {@link Locator#pressSequentially Locator.pressSequentially()} instead. Read more about <a
* href="https://playwright.dev/java/docs/locators">locators</a>.
* @deprecated In most cases, you should use {@link Locator#fill Locator.fill()} instead. You only need to press keys one by one if
* there is special keyboard handling on the page - in this case use {@link Locator#pressSequentially
* Locator.pressSequentially()}.
*
* @param selector A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used.
* @param text A text to type into a focused element.
@@ -4688,8 +4689,9 @@ public interface Frame {
type(selector, text, null);
}
/**
* @deprecated Use locator-based {@link Locator#pressSequentially Locator.pressSequentially()} instead. Read more about <a
* href="https://playwright.dev/java/docs/locators">locators</a>.
* @deprecated In most cases, you should use {@link Locator#fill Locator.fill()} instead. You only need to press keys one by one if
* there is special keyboard handling on the page - in this case use {@link Locator#pressSequentially
* Locator.pressSequentially()}.
*
* @param selector A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used.
* @param text A text to type into a focused element.
@@ -132,7 +132,9 @@ public interface Keyboard {
*/
void insertText(String text);
/**
* {@code key} can specify the intended <a
* <strong>NOTE:</strong> In most cases, you should use {@link Locator#press Locator.press()} instead.
*
* <p> {@code key} can specify the intended <a
* href="https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key">keyboardEvent.key</a> value or a single
* character to generate the text for. A superset of the {@code key} values can be found <a
* href="https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values">here</a>. Examples of the keys are:
@@ -175,7 +177,9 @@ public interface Keyboard {
press(key, null);
}
/**
* {@code key} can specify the intended <a
* <strong>NOTE:</strong> In most cases, you should use {@link Locator#press Locator.press()} instead.
*
* <p> {@code key} can specify the intended <a
* href="https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key">keyboardEvent.key</a> value or a single
* character to generate the text for. A superset of the {@code key} values can be found <a
* href="https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values">here</a>. Examples of the keys are:
@@ -216,7 +220,11 @@ public interface Keyboard {
*/
void press(String key, PressOptions options);
/**
* Sends a {@code keydown}, {@code keypress}/{@code input}, and {@code keyup} event for each character in the text.
* <strong>NOTE:</strong> In most cases, you should use {@link Locator#fill Locator.fill()} instead. You only need to press keys one by one if
* there is special keyboard handling on the page - in this case use {@link Locator#pressSequentially
* Locator.pressSequentially()}.
*
* <p> Sends a {@code keydown}, {@code keypress}/{@code input}, and {@code keyup} event for each character in the text.
*
* <p> To press a special key, like {@code Control} or {@code ArrowDown}, use {@link Keyboard#press Keyboard.press()}.
*
@@ -239,7 +247,11 @@ public interface Keyboard {
type(text, null);
}
/**
* Sends a {@code keydown}, {@code keypress}/{@code input}, and {@code keyup} event for each character in the text.
* <strong>NOTE:</strong> In most cases, you should use {@link Locator#fill Locator.fill()} instead. You only need to press keys one by one if
* there is special keyboard handling on the page - in this case use {@link Locator#pressSequentially
* Locator.pressSequentially()}.
*
* <p> Sends a {@code keydown}, {@code keypress}/{@code input}, and {@code keyup} event for each character in the text.
*
* <p> To press a special key, like {@code Control} or {@code ArrowDown}, use {@link Keyboard#press Keyboard.press()}.
*
@@ -4535,7 +4535,7 @@ public interface Page extends AutoCloseable {
* href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control">control</a>, the control will be filled
* instead.
*
* <p> To send fine-grained keyboard events, use {@link Page#type Page.type()}.
* <p> To send fine-grained keyboard events, use {@link Locator#pressSequentially Locator.pressSequentially()}.
*
* @param selector A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used.
* @param value Value to fill for the {@code <input>}, {@code <textarea>} or {@code [contenteditable]} element.
@@ -4554,7 +4554,7 @@ public interface Page extends AutoCloseable {
* href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control">control</a>, the control will be filled
* instead.
*
* <p> To send fine-grained keyboard events, use {@link Page#type Page.type()}.
* <p> To send fine-grained keyboard events, use {@link Locator#pressSequentially Locator.pressSequentially()}.
*
* @param selector A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used.
* @param value Value to fill for the {@code <input>}, {@code <textarea>} or {@code [contenteditable]} element.
@@ -6942,8 +6942,9 @@ public interface Page extends AutoCloseable {
*/
Touchscreen touchscreen();
/**
* @deprecated Use locator-based {@link Locator#pressSequentially Locator.pressSequentially()} instead. Read more about <a
* href="https://playwright.dev/java/docs/locators">locators</a>.
* @deprecated In most cases, you should use {@link Locator#fill Locator.fill()} instead. You only need to press keys one by one if
* there is special keyboard handling on the page - in this case use {@link Locator#pressSequentially
* Locator.pressSequentially()}.
*
* @param selector A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used.
* @param text A text to type into a focused element.
@@ -6953,8 +6954,9 @@ public interface Page extends AutoCloseable {
type(selector, text, null);
}
/**
* @deprecated Use locator-based {@link Locator#pressSequentially Locator.pressSequentially()} instead. Read more about <a
* href="https://playwright.dev/java/docs/locators">locators</a>.
* @deprecated In most cases, you should use {@link Locator#fill Locator.fill()} instead. You only need to press keys one by one if
* there is special keyboard handling on the page - in this case use {@link Locator#pressSequentially
* Locator.pressSequentially()}.
*
* @param selector A selector to search for an element. If there are multiple elements satisfying the selector, the first will be used.
* @param text A text to type into a focused element.
@@ -18,19 +18,19 @@ package com.microsoft.playwright;
/**
* {@code PageError} class represents objects created by context when there are unhandled execeptions thrown on the pages
* and dispatched via the {@link BrowserContext#onPageError BrowserContext.onPageError()} event.
* {@code WebError} class represents an unhandled exeception thrown in the page. It is dispatched via the {@link
* BrowserContext#onWebError BrowserContext.onWebError()} event.
* <pre>{@code
* // Log all uncaught errors to the terminal
* context.onPageError(pagerror -> {
* System.out.println("Uncaught exception: " + pagerror.error());
* context.onWebError(webError -> {
* System.out.println("Uncaught exception: " + webError.error());
* });
*
* // Navigate to a page with an exception.
* page.navigate("data:text/html,<script>throw new Error('Test')</script>");
* }</pre>
*/
public interface PageError {
public interface WebError {
/**
* The page that produced this unhandled exception, if any.
*
@@ -82,7 +82,7 @@ class BrowserContextImpl extends ChannelOwner implements BrowserContext {
CONSOLE,
DIALOG,
PAGE,
PAGEERROR,
WEBERROR,
REQUEST,
REQUESTFAILED,
REQUESTFINISHED,
@@ -156,13 +156,13 @@ class BrowserContextImpl extends ChannelOwner implements BrowserContext {
}
@Override
public void onPageError(Consumer<PageError> handler) {
listeners.add(EventType.PAGEERROR, handler);
public void onWebError(Consumer<WebError> handler) {
listeners.add(EventType.WEBERROR, handler);
}
@Override
public void offPageError(Consumer<PageError> handler) {
listeners.remove(EventType.PAGEERROR, handler);
public void offWebError(Consumer<WebError> handler) {
listeners.remove(EventType.WEBERROR, handler);
}
@Override
@@ -737,7 +737,7 @@ class BrowserContextImpl extends ChannelOwner implements BrowserContext {
} catch (PlaywrightException e) {
page = null;
}
listeners.notify(BrowserContextImpl.EventType.PAGEERROR, new PageErrorImpl(page, errorStr));
listeners.notify(BrowserContextImpl.EventType.WEBERROR, new WebErrorImpl(page, errorStr));
if (page != null) {
page.listeners.notify(PageImpl.EventType.PAGEERROR, errorStr);
}
@@ -1,12 +1,12 @@
package com.microsoft.playwright.impl;
import com.microsoft.playwright.PageError;
import com.microsoft.playwright.WebError;
public class PageErrorImpl implements PageError {
public class WebErrorImpl implements WebError {
private final PageImpl page;
private final String error;
PageErrorImpl(PageImpl page, String error) {
WebErrorImpl(PageImpl page, String error) {
this.page = page;
this.error = error;
}
@@ -160,14 +160,14 @@ public class TestBrowserContextEvents extends TestBase {
@Test
void pageErrorEventShouldWork() {
PageError[] pageerror = { null };
context.onPageError(e -> {
pageerror[0] = e;
WebError[] webError = { null };
context.onWebError(e -> {
webError[0] = e;
});
page.setContent("<script>throw new Error('boom')</script>");
waitForCondition(() -> pageerror[0] != null);
assertEquals(page, pageerror[0].page());
assertTrue(pageerror[0].error().contains("boom"), pageerror[0].error());
waitForCondition(() -> webError[0] != null);
assertEquals(page, webError[0].page());
assertTrue(webError[0].error().contains("boom"), webError[0].error());
}
}
+1 -1
View File
@@ -1 +1 @@
1.38.0-alpha-sep-5-2023
1.38.0-alpha-sep-10-2023