const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless:false});
const page = await browser.newPage();
//打开掘进首页,点击第一个文章链接
await page.goto('https://juejin.im/');
await page.setViewport({width:1280,height:800});
await page.waitFor('#juejin > div.view-container > main > div > div > div.feed.welcome__feed > ul > li:nth-child(1) > div > div > a > div > div > div.info-row.title-row > a');
await page.tap('#juejin > div.view-container > main > div > div > div.feed.welcome__feed > ul > li:nth-child(1) > div > div > a > div > div > div.info-row.title-row > a');
//跳转到第二个窗口输入文字
await page.waitFor(3000);//等待3秒,等待新窗口打开
const page2 = ( await browser.pages() )[2];//得到所有窗口使用列表索引得到新的窗口
await page2.setViewport({width:1280,height:800});
await page2.waitFor('.search-input');
await page2.type('.search-input','succeed');//在新窗口中输入文字
console.log(await page2.title());//打印新窗口的标题
//由于不会切换page 下面这句不执行,但是点击page之后也就是说第一个page被激活下面这行才执行,怎么解决??
await page.tap('#juejin > div.view-container > main > div > div > div.feed.welcome__feed > ul > li:nth-child(2) > div > div > a > div > div > div.info-row.title-row > a');
})();
eg:问题已被大佬解决,是我文档阅读不够全面,知识又不充足.
补充:多个page之间按照打开先后有序列,如果关闭先打开的一个page则后边所有page序列-1, 而不是按照浏览器从左到右12345...