Когда приложение открывает новую вкладку, это сложно без знания ваших условий. У меня он отлично работает. Вот код, демонстрирующий, как я могу его использовать. Прочтите комментарии, чтобы понять действия.
ОБНОВЛЕНО:
window.open()
не возвращает обещание, поэтому browser.pages () выполняется быстрее, чем браузер может создать событие и сообщить о нем. Мы можем использовать событие targetcreated
, чтобы узнать, создана ли новая вкладка.
browser.on('targetcreated', function(){
console.log('New Tab Created');
})
Если вы немного подождете или вернете обещание, вы увидите, что он сообщает об этом в пределах browser.pages()
count.
await tabOne.evaluate(() => {
window.open('http://www.example.com', '_blank');
});
await tabOne.waitFor(2000); // await for a while
console.log("current page count ", (await browser.pages()).length); // 3
Вот окончательный код.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
browser.on('targetcreated', function(){
console.log('New Tab Created');
})
// get current tab count
console.log("current page count ", (await browser.pages()).length); // 3
// create a new tab
await browser.newPage();
// lets see if tab increased
console.log("current page count ", (await browser.pages()).length); // 3
// use destructuring for easier usage
const [tabOne, tabTwo] = (await browser.pages());
// use the tabs aka Page objects properly
await tabOne.goto('https://example.com');
console.log("Tab One Title ",await tabOne.title()); // Example Domain
// use the tabs aka Page objects properly
await tabTwo.goto('https://example.com');
console.log("Tab Two Title ",await tabTwo.title()); // Example Domain
await tabOne.evaluate(() => {
window.open('http://www.example.com', '_blank');
});
await tabOne.waitFor(2000); // wait for a while
console.log("current page count ", (await browser.pages()).length); // 3
// close the browser
await browser.close();
})();
Если вы запустите его, вы получите результат в следующей последовательности.
/*
current page count 1
New Tab Created
current page count 2
Tab One Title Example Domain
Tab Two Title Example Domain
New Tab Created
current page count 3
*/
person
Md. Abu Taher
schedule
03.03.2018