首页 > 解决方案 > 尝试使用 puppeteer js 单击子超链接

问题描述

我有以下html:

<td id="content_PDB_Dashboard_UC_SharedLeads_gvSharedLeads_tccell0_6" class="dxgv dx-ellipsis" align="left" style="border-bottom-width:0px;" title="
                                1905 Saint Louis Avenue 
                            " dxellipsistitle="true">
                                <a onclick="return ShowCallDialog(472919, 7);">1905 Saint Louis Avenue </a>
                            </td>

一个页面上有多个。我需要遍历并单击每个链接。'一个'。这是我的尝试:

  const allProperties = await page.$$('.dxgv, .dx-ellipsis > a');
    allProperties.map(el => {
     el.click();
    })

我收到的错误是:

Error: Node is either not visible or not an HTMLElement

知道我做错了什么吗?

标签: puppeteer

解决方案


  1. map不会异步执行,将其替换为简单的for loopor Promise.all

  2. 如果使用没有限制HTMLElement.click,请改用它(问题)。

const anchors = await page.$$('.dxgv, .dx-ellipsis > a');
for (let anchor of anchors)
    await page.evaluate(el => el.click(), anchor);

推荐阅读