Python Selenium与GeckoDriver跨设备异常:_.intersection函数报错排查
针对你遇到的Uncaught TypeError: _.intersection is not a function报错,核心原因是笔记本环境中Lodash库的intersection函数未被正确识别或加载,可按以下步骤排查:
对比Lodash版本
在台式机和笔记本的Firefox控制台分别执行_.VERSION,查看两个环境中页面加载的Lodash版本是否一致。部分精简版Lodash或旧版本可能未包含intersection函数,若版本不同,可尝试在笔记本上强制页面加载与台式机相同的Lodash版本。验证脚本加载时机
在笔记本上点击尺码前,先在控制台手动执行_.intersection([1,2], [2,3]),如果能正常返回结果,说明程序触发点击的时机太早,Lodash还未完全加载。需要调整代码中的等待逻辑,比如增加等待window._对象存在的判断,或等待页面特定脚本加载完成后再执行点击操作。检查浏览器安全设置与插件
临时禁用笔记本Firefox的所有附加组件(如广告拦截、隐私插件),并关闭严格追踪保护,测试是否能正常运行。部分插件可能误拦截了Lodash脚本的加载,导致全局_对象缺失函数。确认本地依赖完整性
如果你的程序是通过本地注入Lodash脚本的方式运行,检查笔记本上的本地Lodash文件是否完整,可直接拷贝台式机上的对应文件覆盖笔记本的版本,避免文件损坏或遗漏。检查Lodash引入方式
在控制台执行Object.keys(_)查看全局_对象的可用函数,确认是否包含intersection。如果网站采用模块化引入Lodash(如仅按需加载部分函数),笔记本可能因CORS或缓存问题导致模块加载失败,可尝试在脚本中手动引入完整Lodash库。
内容的提问来源于stack exchange,提问作者Cody F

