我有一个链接列表,并希望click
根据链接名称访问其中一个。我不能用选择器来完成这个。
page.$eval
使用类似获取该项目的 ElementHandle 之类的东西会很好,这样我就可以点击/单击它。
我能想到的唯一其他方法是获取 x/y 坐标$eval
,然后手动单击该位置。似乎很乏味。
我根据指南在此处发布了此内容,但如果我们应该就此打开 PR,请LMK。
我有一个链接列表,并希望click
根据链接名称访问其中一个。我不能用选择器来完成这个。
page.$eval
使用类似获取该项目的 ElementHandle 之类的东西会很好,这样我就可以点击/单击它。
我能想到的唯一其他方法是获取 x/y 坐标$eval
,然后手动单击该位置。似乎很乏味。
我根据指南在此处发布了此内容,但如果我们应该就此打开 PR,请LMK。
您是否考虑过使用page.$$(selector)
获取所有目标元素,然后使用page.evaluate()
获取linkName
,然后进行检查并单击?
就像是:
const targetLinks = await page.$$('yourLinkSelector');
for(let link of targetLinks){
const linkName = await page.evaluate(el => el.innerHTML, link);
if (linkName === 'myFancyLinkToClick') {
await link.click();
// break if only 1 link click is needed.
break;
}
}
希望对你有效。