You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Nightmare(Node.js/Atom)点击带data-style-name="Black"的Supreme链接?

解决Nightmare点击Supreme商品属性元素的问题

嘿,我来帮你搞定这个选择器的问题!你之前的写法之所以报错,是因为用了不符合CSS语法的选择器格式——Nightmare的click方法接受的是标准CSS选择器,而你写的data-style-name ='Black'并不是有效的语法。

正确的属性选择器写法

要选择带有data-style-name="Black"属性的元素,你需要用CSS的属性选择器语法,格式是[属性名="属性值"],所以正确的代码应该是:

.click('[data-style-name="Black"]')

更精确的选择器(可选)

因为目标元素同时带有selected类,你可以结合类名来让选择器更精准,避免误点其他可能存在的同属性元素:

.click('a.selected[data-style-name="Black"]')

这个选择器会专门定位到带有selected类、且data-style-name值为Black的<a>标签,和你提供的元素代码完全匹配。

完整示例片段

把正确的选择器放到你的Nightmare脚本里大概是这样:

const Nightmare = require('nightmare');
const nightmare = Nightmare({ show: true });

nightmare
  .goto('http://www.supremenewyork.com/shop/bags/lkav6jh17/p9ylgt8vm')
  .wait('[data-style-name="Black"]') // 最好先等待元素加载完成
  .click('[data-style-name="Black"]')
  .then(() => {
    console.log('成功点击黑色书包选项!');
  })
  .catch(err => {
    console.error('操作失败:', err);
  });

为什么原来的代码报错?

报错信息里提到的querySelector是Nightmare底层用来查找元素的API,它只接受标准CSS选择器。你之前写的data-style-name ='Black'不符合语法规则,所以无法被识别,换成标准的属性选择器格式就可以正常工作了。

内容的提问来源于stack exchange,提问作者user9861465

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:02:44