我在使用Puppeteer(1.3版)时遇到了一些麻烦。
我正在尝试运行此功能:
async function func(page, selector, value)
{
let xPath = "//" + selector + "[contains(text(), " + value + ")]";
let linkHandlers = await page.$x(xPath);
if (linkHandlers.length > 0)
{
await linkHandlers[0].click();
}
else
{
console.log("FAILED");
}
}
如果我尝试使用selector = 'div'
第一次运行该功能,则效果很好。
但是,当我尝试使用代码中未出现的选择器再次运行它时,我收到了linkHandlers.length = 149
。
如何仅为代码中存在的选择器获取实际的linkHandlers.length
?
答案 0 :(得分:0)
开始之前,请确保将有效的XPath selector
传递给函数,而不是CSS选择器。
例如,如果要使用id="example"
选择一个元素,则您的XPath选择器应为:
*[@id="example"]
此外,您需要确保将value
用引号引起来,以便正确解释XPath选择器。
您的xPath
字符串应采用以下格式:
let xPath = `//${selector}[contains(text(), '${value}')]`;