const puppeteer = require('puppeteer');
//https://my.oschina.net/reamd7/blog/1634846
async function run() {
console.log('开始');
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
url = "file:///C:/reptile_1/frame%E7%BD%91%E9%A1%B5/index.html";
await page.goto(url);
await page.waitFor(1000);
// 获取uiframe信息
console.log('获取uiframe信息');
let frame = await page.mainFrame().childFrames()[0];
let doc = await frame.evaluateHandle('document');
let s = await doc.$eval("#edit1", el => el.value);
console.log(s);
await page.waitFor(1000);
//----------或者-------------
console.log('获取uiframe信息');
const frameA = page.frames().find(frame => frame.name() === 'iframe1');
let doc1 = await frameA.evaluateHandle('document');
let s1 = await doc1.$eval("#edit1", el => el.value);
console.log(s1);
await page.waitFor(1000);
//结束
console.log('结束');
const browser = await puppeteer.launch();//获得browser对象
const page = await browser.newPage();//获得page对象
await page.goto('https://www.baidu.com/'); //页面跳转
const name = await page.$("input[name='ryname']");//通过name获得页面上的控件
const nm = await page.$("#kw");//通过id获得页面上的控件
await nm.focus(); //定位到搜索框
await page.keyboard.type("puppeteer");//模拟输入
const btn = await page.$("#su");
btn.click();//模拟按钮单击事件
let iframe = await page.frames().find(f => f.name() === 'qy_r');//找名称为qy_r的子框架
//子框架遍历
for (let child of iframe.childFrames()) {
……
}