kunki 发表于 2026-1-29 19:43
非常感谢 c 大一直以来的热心分享与持续迭代!ElementGetter 作为异步获取元素的实用脚本库,帮我们解决了 ...
选择器类型切换的问题我有处理过了,每次调用get、each都会在内部记录本次的选择器类型,理论上来说应该不会混淆,且js是单线程,通常不必过于关注原子操作的问题,如果有bug可以提供一下复现用例,我会尝试修复。
取消实例化是为了简化调用,因为绝大多数情况都是单实例,多写句new就显得没有必要,而且这个库主要是面向新手的,我想尽可能减少出错的概率,你可以看到我在接口设计上做了很多妥协,比如parent参数可以单独省略,这在编程实践上是个有点糟糕的设计,不过只要最后写出来的代码既简洁又不容易出错,就算达到目的了。
关于你的需求我有个更简单的提议,在你的脚本内封装这两个函数应该就足够了,这样就不需要修改库设计:
function getElementByXpath(...args) {
elmGetter.selector('XPath');
const result = elmGetter.get(...args);
elmGetter.selector('CSS');
return result;
}
function eachElementByXpath(...args) {
elmGetter.selector('XPath');
elmGetter.each(...args);
elmGetter.selector('CSS');
}