如何在 puppeteer Node.js 中将 const 添加到 await page.$x? xpath 中的常量
Posted
技术标签:
【中文标题】如何在 puppeteer Node.js 中将 const 添加到 await page.$x? xpath 中的常量【英文标题】:How add const to await page.$x in puppeteer Node.js? Const in xpath 【发布时间】:2021-12-11 22:11:19 【问题描述】:我想将 cont 添加到 href 链接。我想使用常量。我遇到了问题:
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();
【问题讨论】:
我不确定你在问什么。i
是什么?通常连接字符串和数组是没有意义的。
我要使用 " for (let i = 1; i
您能否编辑帖子以包含该代码并显示您正在使用的页面。你想得到什么数据?你的意思是for (let i = 1; i < 10; i++) const link = `p$i`;
还是"p" + i
?同样,我不确定您为什么要将 i
放在单个元素数组中。
每个链接都包含p+数字,第一个元素包含p1,第二个包含p2,第三个p3。
【参考方案1】:
您可以使用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();
【讨论】:
如果有人想知道,它是区分大小写的以上是关于如何在 puppeteer Node.js 中将 const 添加到 await page.$x? xpath 中的常量的主要内容,如果未能解决你的问题,请参考以下文章
Node Js & Puppeteer - 如何选择包裹在 Anchor 标签内的文本
如何使用 puppeteer 和 Node js 为 pdf 页面生成屏幕截图