Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 木偶演员-单击包含跨度和匹配文本的锚定_Javascript_Web Scraping_Puppeteer - Fatal编程技术网

Javascript 木偶演员-单击包含跨度和匹配文本的锚定

Javascript 木偶演员-单击包含跨度和匹配文本的锚定,javascript,web-scraping,puppeteer,Javascript,Web Scraping,Puppeteer,我试图让木偶演员点击锚定,锚定有一个包含特定文本的子跨度 HTML代码段(个人详细信息由“…”删除): 如果您试图基于innerHTML选择锚定标记 你必须试试: await page.$$eval("a", anchors=>anchors.filter( anchor=>anchor.innerHTML

我试图让木偶演员点击锚定,锚定有一个包含特定文本的子跨度

HTML代码段(个人详细信息由“…”删除):


如果您试图基于innerHTML选择锚定标记 你必须试试:

await page.$$eval("a",
                  anchors=>anchors.filter(
                           anchor=>anchor.innerHTML
                                         .includes("checking"))[0].click());

我尝试了最初的建议,但实际上得到了一个错误
TypeError:archors[0]。单击不是函数。很明显,我不在这里。我在我的机器上尝试了一个类似的案例,如果你可以发送URL,我可以帮助你尝试最后一次编辑,并告诉你是否发生了任何错误Wellsfargo.com(显然,只有你在那里有帐户时,它才会起作用)。我试过你的更新代码。它没有出错(我所有人都有),但它实际上也没有单击链接。您可以尝试
console.log(锚[0])
查看它是否在
页面中正确。$$eval
回调
//a[包含(,'Checking')]
应该可以工作。如果它不在那里,你可能不得不等待它。我和Abdel继续在车队中排除故障。此错误似乎是
[Report Only]拒绝运行JavaScript URL的原因,因为它违反了以下内容安全策略指令:“script src'nonce-……'https:'不安全内联''不安全评估'”。请注意,如果源列表中存在哈希值或nonce值,“不安全内联”将被忽略。
运行
页面。setBypassCSP(true)
无法解决问题。
等待页面。setBypassCSP(true)
?还可以尝试参数:['--disable web security']作为一个puppeter选项

  //const aElementsWithChecking = await page.$x("//a[contains(., 'Checking')]");
  //const aElementsWithChecking = await page.$x("//a[@class='account-title-group' and descendant::span[contains(., 'Checking')]]");
  //const aElementsWithChecking = await page.$x("//a[@class='account-title-group' and descendant::span[contains(text(), 'Checking')]]");
  //const aElementsWithChecking = await page.$x("//a[@class='account-title-group' and .//*[contains(text(), 'Checking')]]");
  //const aElementsWithChecking = await page.$x("//a[@class='account-title-group' and .//*[contains(., 'Checking')]]");
  const aElementsWithChecking = await page.$x("//a[(.//*|.)[.='Checking']]");

  if (aElementsWithChecking.length > 0) {
    await aElementsWithChecking[0].click();
  } else {
    throw new Error("Link not found");
  }

await page.$$eval("a",
                  anchors=>anchors.filter(
                           anchor=>anchor.innerHTML
                                         .includes("checking"))[0].click());