如何在 puppeteer Node.js 中添加 const 以等待 page.$x? xpath 中的常量

How add const to await page.$x in puppeteer Node.js? Const in xpath

我想将 cont 添加到 href link。我想使用常量。我有以下问题:

const klik2 = await page.$x("//a[contains(@href, 'p2')]");

我要加

const new = 'p' + [i];

现在'p2'在哪里。如何正确操作?

我的实际代码:

const puppeteer = require('puppeteer');

(async () => {

const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.setDefaultNavigationTimeout(0);
await page.goto("http://mypage.test/");
for (let i = 1; i < 100; i++) {
const link = 'p' + [i];
try {

const klik2 = await page.$x("//a[contains(@href, link)]");
await klik2[0].click();

} 抓住{

   console.log(e);    

}

   await page.goto("http://mypage.test/");


})();

也曾尝试过这样的事情:

const klik3 = "'" + 'p1' + "'";
const klik = '"//a[contains(@href,' + klik3 + ')]"';
console.log(klik);
const klik2 = await page.$x(klik);
await klik2[0].click();

您可以使用 template literals (template strings)。此外,您似乎不需要在串联中使用数组(此处:const link = 'p' + [i];

const link = 'p' + i;
try {
  const klik2 = await page.$x(`//a[contains(@href, '${link}')]`);
  await klik2[0].click();
}