要在 Node.js 中使用 Playwright 定位到一个 iframe 并获取其在屏幕中的位置,可以按照以下步骤进行: 1. 使用 `page.frame()` 方法获取 iframe 元素的句柄: ```javascript const frame = await page.frame({ /* ... */ }); ``` 其中 `{ /* ... */ }` 参数可以是一个对象,其中包含用于定位 iframe 的属性,例如 `name` 或 `src` 等属性。 2. 一旦获得了 iframe 的句柄,就可以使用 `frame.boundingBox()` 方法获取其在屏幕上的位置和大小: ```javascript const frameBoundingBox = await frame.boundingBox(); ``` 此方法将返回一个矩形对象,其中包含 iframe 的左上角坐标、宽度和高度。例如,可以使用以下代码打印此矩形的属性: ```javascript console.log(frameBoundingBox.x, frameBoundingBox.y, frameBoundingBox.width, frameBoundingBox.height); ``` 这将输出 iframe 的左上角坐标、宽度和高度。 注意:在使用 `frame.boundingBox()` 方法之前,确保已经等待了 iframe 加载完成,否则可能会返回空值。 完整示例代码如下所示: ```javascript const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch({ headless: false }); const page = await browser.newPage(); await page.goto('https://example.com'); // 定位 iframe const frame = await page.frame({ src: 'http://example.net' }); // 等待 iframe 加载完成 await frame.waitForLoadState(); // 获取 iframe 在屏幕上的位置和大小 const frameBoundingBox = await frame.boundingBox(); console.log(frameBoundingBox.x, frameBoundingBox.y, frameBoundingBox.width, frameBoundingBox.height); await browser.close(); })(); ``` 这将打开一个 Chromium 浏览器窗口,导航到示例网站并定位到指定的 iframe,然后获取其在屏幕上的位置和大小并打印输出。
标签:Node,Playwright,const,frameBoundingBox,frame,await,js,iframe,page From: https://www.cnblogs.com/angdh/p/17214797.html