木偶如何单击“下一个兄弟”的子元素

时间:2019-06-05 00:57:12

标签: css-selectors puppeteer

我要选择并单击下一个同级html代码中指定的<a> 下方:

<ul>
  <li>
    <a></a>
  </li>
  <li>
    <a></a>
  </li>
  <li class='abc'>
    <a></a>
  </li>
  <li>
    <a></a> <!-- I want to click this link -->
  </li>
</ul> 

<ul>正在变化,但<li class='abc'>却没有变化

并使用以下代码:

    let tag = await page.evaluate(() => {
        return document.querySelector('li.abc').nextSibling.a
    })

    console.log(tag?'Y': 'N')
    // await page.click(tag)

然后输出'N'

有人可以帮助我解决此错误吗? 预先感谢!

1 个答案:

答案 0 :(得分:0)

从Dave Batiste(puppeteer.slack.com的用户)那里得到了这个答案,

感谢@Vaviloff指出:我应该发布此答案。

使用代码page.click('.abc + li > a')可以单击我想要的指定的<a>, 和Dave Batiste(puppeteer.slack.com的用户)提供了更多信息,如下所示:

  

如果您确实希望可以调用方法的句柄,那么我想您会对> page.$ ...

const handle = await page.$(selector);
handle.click(options);