Puppeteer-如何使用XPath获取标签的长度?

时间:2018-07-10 17:20:48

标签: javascript xpath puppeteer

我在使用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

1 个答案:

答案 0 :(得分:0)

开始之前,请确保将有效的XPath selector传递给函数,而不是CSS选择器。

例如,如果要使用id="example"选择一个元素,则您的XPath选择器应为:

*[@id="example"]

此外,您需要确保将value用引号引起来,以便正确解释XPath选择器。

您的xPath字符串应采用以下格式:

let xPath = `//${selector}[contains(text(), '${value}')]`;