css-selectors - Puppeteer如何点击 'next sibling'的子元素

标签 css-selectors puppeteer

我要选择并点击指定的<a>下一个兄弟,html代码 下面:

<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'

谁能帮我解决这个错误? 提前致谢!

最佳答案

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

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

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

If you do want a handle that you can call methods on, I think you'd be interested in > page.$...

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

关于css-selectors - Puppeteer如何点击 'next sibling'的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56453023/

相关文章:

javascript - 拦截某个请求并得到它的响应(puppeteer)

node.js - 安装 puppeteer 2 Elastic Beanstalk

javascript - puppeteer 选择链接

node.js - 为什么 puppeteer 报告 "UnhandledPromiseRejectionWarning: Error: Navigation failed because browser has disconnected!"?

css - 如何在被打扰时让第 n 个 child 继续工作

html - 是否有 2 个或更多具有相同属性值的元素的选择器?

html - 如何选择最后一个选择器?

css - 如何在 css not() 选择器中放置多个类?

css - 自定义单选按钮 w3s 示例

javascript - 如何点击 element puppeteer 的特定部分