Вы можете иметь массив во внешней области действия page.on
для заполнения URL-адресами из черного списка, а затем ждать, пока page.goto
завершит загрузку страницы sh, используя page.goto
waitUntil
Опции и установить длину массива в конце загрузки страницы. Вы даже можете использовать этот массив для печати занесенных в черный список URL-адресов в сообщении подтверждения.
Пожалуйста, прочитайте встроенные комментарии
it('No responses with blacklisted URLs', async function () {
const blacklistedUrls = ['tia', 'example'];
// Have an array to keep each blacklisted URLs
const blacklistedUrlsFound = [];
page.on('response', response => {
// Use some instead forEach to evaluate the rule, it will be faster
const hasBlacklistedUrls = blacklistedUrls.some(url => response.url().indexOf(url) >= 0);
// If response url has blacklisted urls add the url to the array
if (hasBlacklistedUrls) {
blacklistedUrlsFound.push(response.url());
}
});
// Visit tha page and wait for network to be idle (finish requesting external urls)
await page.goto('http://google.com/', { waitUntil: ["networkidle0"] });
// Finally assert using the blacklistedUrlsFound.length and print the black-listed urls
assert.equal(blacklistedUrlsFound.length > 0, false,
`There are black-listed URLs:\n${blacklistedUrlsFound.map(url => `\t${url}`).join('\n')}`);
});
Вы будете заставить ваш тест работать без каких-либо исключений, и, конечно, он не будет выполнен, потому что есть URL-адреса ответов, содержащие по крайней мере tia
: