框架(Frames)
简介
一个 Page 可以附加一个或多个 Frame 对象。每个页面都有一个主框架,并且页面级别的交互(如 click
)假定在主框架中操作。
页面可以通过 iframe
HTML 标签附加额外的框架。可以访问这些框架以在框架内进行交互。
// 在框架内定位元素
var username = await page.FrameLocator(".frame-class").GetByLabel("User Name");
await username.FillAsync("John");
Frame 对象
可以使用 Page.Frame() API 访问框架对象:
// 创建一个页面。
var page = await context.NewPageAsync();
// 使用框架的 name 属性获取框架
var frame = page.Frame("frame-login");
// 使用框架的 URL 获取框架
var frame = page.FrameByUrl("*domain.");
// 使用任何其他选择器获取框架
var frameElementHandle = await page.EvaluateAsync("window.frames[1]");
var frame = await frameElementHandle.ContentFrameAsync();
// 与框架进行交互
await frame.FillAsync("#username-input", "John");