4

我有一个链接列表,并希望click根据链接名称访问其中一个。我不能用选择器来完成这个。

page.$eval使用类似获取该项目的 ElementHandle 之类的东西会很好,这样我就可以点击/单击它。

我能想到的唯一其他方法是获取 x/y 坐标$eval,然后手动单击该位置。似乎很乏味。

我根据指南在此处发布了此内容,但如果我们应该就此打开 PR,请LMK。

4

1 回答 1

4

您是否考虑过使用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;
  }
}

希望对你有效。

于 2017-10-09T03:10:33.457 回答