mirror of
https://github.com/microsoft/playwright-java.git
synced 2025-12-28 10:20:45 +00:00
fix: generate frameByUrl from api.json (#285)
This commit is contained in:
parent
6fb0b01a17
commit
b8a774eecc
@ -1904,16 +1904,31 @@ public interface Page extends AutoCloseable {
|
||||
* [working with selectors](./selectors.md) for more details.
|
||||
*/
|
||||
void focus(String selector, FocusOptions options);
|
||||
Frame frameByName(String name);
|
||||
Frame frameByUrl(String glob);
|
||||
Frame frameByUrl(Pattern pattern);
|
||||
/**
|
||||
* Returns frame matching the specified criteria. Either {@code name} or {@code url} must be specified.
|
||||
*
|
||||
*
|
||||
* @param frameSelector Frame name or other frame lookup options.
|
||||
* @param name Frame name specified in the {@code iframe}'s {@code name} attribute.
|
||||
*/
|
||||
Frame frameByUrl(Predicate<String> predicate);
|
||||
Frame frame(String name);
|
||||
/**
|
||||
* Returns frame with matching URL.
|
||||
*
|
||||
* @param url A glob pattern, regex pattern or predicate receiving frame's {@code url} as a [URL] object.
|
||||
*/
|
||||
Frame frameByUrl(String url);
|
||||
/**
|
||||
* Returns frame with matching URL.
|
||||
*
|
||||
* @param url A glob pattern, regex pattern or predicate receiving frame's {@code url} as a [URL] object.
|
||||
*/
|
||||
Frame frameByUrl(Pattern url);
|
||||
/**
|
||||
* Returns frame with matching URL.
|
||||
*
|
||||
* @param url A glob pattern, regex pattern or predicate receiving frame's {@code url} as a [URL] object.
|
||||
*/
|
||||
Frame frameByUrl(Predicate<String> url);
|
||||
/**
|
||||
* An array of all frames attached to the page.
|
||||
*/
|
||||
|
||||
@ -687,7 +687,7 @@ public class PageImpl extends ChannelOwner implements Page {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Frame frameByName(String name) {
|
||||
public Frame frame(String name) {
|
||||
for (Frame frame : frames) {
|
||||
if (name.equals(frame.name())) {
|
||||
return frame;
|
||||
|
||||
@ -47,7 +47,7 @@ public class TestElementHandleBoundingBox extends TestBase {
|
||||
void shouldHandleNestedFrames() {
|
||||
page.setViewportSize(500, 500);
|
||||
page.navigate(server.PREFIX + "/frames/nested-frames.html");
|
||||
Frame nestedFrame = page.frameByName("dos");
|
||||
Frame nestedFrame = page.frame("dos");
|
||||
assertNotNull(nestedFrame);
|
||||
ElementHandle elementHandle = nestedFrame.querySelector("div");
|
||||
BoundingBox box = elementHandle.boundingBox();
|
||||
|
||||
@ -210,8 +210,8 @@ public class TestPageBasic extends TestBase {
|
||||
@Test
|
||||
void pageFrameShouldRespectName() {
|
||||
page.setContent("<iframe name=target></iframe>");
|
||||
assertNull(page.frameByName("bogus"));
|
||||
Frame frame = page.frameByName("target");
|
||||
assertNull(page.frame("bogus"));
|
||||
Frame frame = page.frame("target");
|
||||
assertNotNull(frame);
|
||||
assertEquals(page.mainFrame().childFrames().get(0), frame);
|
||||
}
|
||||
@ -272,7 +272,7 @@ public class TestPageBasic extends TestBase {
|
||||
@Test
|
||||
void framePressShouldWork() {
|
||||
page.setContent("<iframe name=inner src='" + server.PREFIX + "/input/textarea.html'></iframe>");
|
||||
Frame frame = page.frameByName("inner");
|
||||
Frame frame = page.frame("inner");
|
||||
frame.press("textarea", "a");
|
||||
assertEquals("a", frame.evaluate("() => document.querySelector('textarea').value"));
|
||||
}
|
||||
|
||||
@ -1 +1 @@
|
||||
1.9.0-next-1613169016000
|
||||
1.9.0-next-1613173968000
|
||||
|
||||
@ -464,12 +464,6 @@ class Method extends Element {
|
||||
private static Map<String, String[]> customSignature = new HashMap<>();
|
||||
static {
|
||||
customSignature.put("Page.setViewportSize", new String[]{"void setViewportSize(int width, int height);"});
|
||||
customSignature.put("Page.frame", new String[]{
|
||||
"Frame frameByName(String name);",
|
||||
"Frame frameByUrl(String glob);",
|
||||
"Frame frameByUrl(Pattern pattern);",
|
||||
"Frame frameByUrl(Predicate<String> predicate);",
|
||||
});
|
||||
customSignature.put("BrowserContext.cookies", new String[]{
|
||||
"default List<Cookie> cookies() { return cookies((List<String>) null); }",
|
||||
"default List<Cookie> cookies(String url) { return cookies(Arrays.asList(url)); }",
|
||||
@ -568,6 +562,11 @@ class Method extends Element {
|
||||
returnType = new TypeRef(this, jsonElement.get("type"));
|
||||
if (jsonElement.has("args")) {
|
||||
for (JsonElement arg : jsonElement.getAsJsonArray("args")) {
|
||||
JsonObject paramObj = arg.getAsJsonObject();
|
||||
if (paramObj.get("name").getAsString().equals("options") &&
|
||||
paramObj.getAsJsonObject("type").getAsJsonArray("properties").size() == 0) {
|
||||
continue;
|
||||
}
|
||||
params.add(new Param(this, arg.getAsJsonObject()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,8 +52,6 @@ class Types {
|
||||
add("Page.exposeFunction.callback", "function", "FunctionCallback");
|
||||
|
||||
// The method has custom signatures
|
||||
add("Page.frame.frameSelector", "Object|string", "Custom", new Empty());
|
||||
add("Page.frame.options", "Object", "FrameOptions", new Empty());
|
||||
add("Page.selectOption.values", "Array<ElementHandle>|Array<Object>|Array<string>|ElementHandle|Object|null|string", "String");
|
||||
add("Page.setInputFiles.files", "Array<Object>|Array<path>|Object|path", "String");
|
||||
add("Frame.selectOption.values", "Array<ElementHandle>|Array<Object>|Array<string>|ElementHandle|Object|null|string", "String");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user