xiaooooooo 发表于 2024-1-7 00:39:17

关于elmGetter库方法嵌套的问题

求助各位大佬,我需要实现的场景是:
1.在目标页面先拉起底部菜单,
2.然后选择我要的尺码,
3.点击+号一直加到不能再增加
4.然后返回这个最终的数字给我

现在我的脚本卡在了第三步。
由于库存数可能上百,所以我的方法是先用.value的方法操作DOM赋值给input元素,赋值9999,然后点击一下减号按钮,此时出来的数字就是最大值减一。再拿取这个值出来。

但是当我在elmGetter.get方法里面再次嵌套一个elmGetter.get的时候,抓不到第二次我需要的那个元素了,求问如何解决?

可以用下面的链接尝试:
[样例](https://mobile.yangkeduo.com/goods.html?goods_id=577759110210&page_from=39&_oc_trace_mark=199&is_spike=0&_x_query=%E5%A4%A9%E5%A4%A9%E8%BF%90%E5%8A%A8%E6%97%97%E8%88%B0%E5%BA%97&refer_page_name=mall_page&refer_page_id=10039_1704524762216_vz6redkbhj&refer_page_sn=10039&uin=OD72QUNJUTZ5PMEJCUTAPO4ALU_GEXDA)

李恒道 发表于 2024-1-7 21:19:51

这不是elemenGetter问题
遇到这种问题不要去思考
人脑会出错的,但是调试不会出错
实际上三个get都执行了
有两个问题
1.先后顺序你没确定好
2.pdd有元素触发问题
https://learn.scriptcat.org/docs/middle/%E5%85%83%E7%B4%A0%E8%A7%84%E5%88%99%E6%A0%A1%E9%AA%8C%E5%92%8C%E6%A3%80%E6%B5%8B%E7%9A%84%E8%A7%A6%E5%8F%91/

https://learn.scriptcat.org/docs/category/promise-%E7%9F%A5%E8%AF%86/

cxxjackie 发表于 2024-1-8 22:15:18

不建议将多个get嵌套使用,get设计为Promise就是为了应对这种情况,async/await语法可以使嵌套的代码扁平化:
(async function() {
    const category = await elmGetter.get('...');
    category.click();
    const stock_num = await elmGetter.get('...');
    stock_num.value = 9999;
    const minus_button = await elmGetter.get('...');
    minus_button.click();
})();
页: [1]
查看完整版本: 关于elmGetter库方法嵌套的问题