【发布时间】:2020-01-20 06:43:19
【问题描述】:
在检查页面上的元素是否存在后,我无法记录它。我所指的代码块位于 "// phone" 注释下。
此代码循环遍历页面上的每个部分(部分的部分)并记录“公司”和“电话”。 “电话”可能不会出现在某些部分,所以我想我会通过 if 语句来检查它是否存在。这会产生一个错误 =“错误:未能找到匹配选择器“.mn-contact-phone”的元素”我该如何解决?
(async () => {
try {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
// loop through pages
for (let pg = 1; pg < 5; pg++) {
await page.goto("webpage");
// record number of sections
const sections = await page.$$("#mn-members-listings > div");
// loop through each section
for (const section of sections) {
// company
let company = await section.$eval(
"div.mn-searchlisting-title",
comp => comp.innerText
);
// phone --> THIS IF/ELSE THROWS AN ERROR
if (section.$(".mn-contact-phone").length > 0) {
let phone = await section.$eval(".mn-contact-phone", phn => phn.innerText);
} else {
let phone = "";
}
console.log(`Company = ${company} | Phone = ${phone}`);
}
}
await browser.close();
} catch (error) {
console.log(`Our error is = ${error}`);
}
})();
【问题讨论】:
标签: javascript async-await puppeteer