Puppeteerでdata-*のようなカスタムデータ属性の値を取得するには、以下のようにevaluateを使用します。
このやり方、知っている人には当たり前の話すぎるのか分かりませんが、Google先生に聞いてもほとんど見つかりませんでした。構文をすぐに忘れてしまいそうなので、自分用にメモしておきます。(メモしたことすら忘れるかもしれませんが……)
HTML(抜粋)
<tr> <td>hogehoge</td> <td> <input id="xxxx" type="text" value="99999999" maxlength="10"> </td> <td> <a href="https://example.com" data-test-id="12345678" class="foo">リンク</a> </td> </tr>
Puppeteer
let trList = await page.$('tr'); let tdList = await trList.$$('td'); let testId = await (await tdList[2].$('a')).evaluate(node => node.getAttribute('data-test-id'));
evaluateをちゃんと理解できていないし、違う書き方もありそうなんですが、とりあえず動いたのでヨシ(よくない