目录
前言
在我们日常使用中,经常会碰到需要在新的tab打开一个网页。我们可以用broswer的waitForTarget方法去定位。
功能描述
进去音乐网站,点击按钮,在新tab中打开音乐列表。获取音乐列表信息。
演示
const puppeteer = require('puppeteer');
async function switchWindows(){
const broswer = await puppeteer.launch({
headless: false,
defaultViewport: {
width: 1920,
height: 1080
},
slowMo: 200,
ignoreDefaultArgs: ['--enable-automation'],
args: ['--start-maximized']
// executablePath:'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
});
const page = await broswer.newPage();
await page.goto('https://music.91q.com/songlist', {waitUntil:'networkidle0'});
//定位到元素:神仙翻唱,唤醒耳朵的全新演绎
const span_music = await page.waitForSelector('.tracklist-box.clearfix>div:nth-child(2)>.poster')
await span_music.click();
const targetUrl = await broswer.waitForTarget(t=>t.url().includes('player'));
const newPage = await targetUrl.page();
//等待songlist出现
await newPage.waitForSelector('ul.songlist.fl')
const text = await newPage.$eval('ul.songlist.fl', ele=> ele.innerText);
console.log(text);
}
switchWindows();