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

如何向Selenium的JavaScript执行器传递函数?

解决Selenium传递函数参数的问题

你遇到的核心问题是Selenium会把传入的函数字符串当作普通字符串处理,而非JS函数。可以用以下几种方式解决:

  • 直接在执行脚本中定义函数
    不需要把函数作为参数传递,直接在executeScript的脚本字符串里写出完整的函数调用逻辑,这样执行时会直接解析为JS函数:

    driver.executeScript(`
      someFunction(() => console.log('hi'))
    `)
    
  • 用eval转换字符串为函数
    如果需要动态传入函数内容,可将函数字符串作为参数传递,在执行脚本中用eval把字符串转为函数(注意:仅在内容完全可控时使用,避免安全风险):

    driver.executeScript(`
      const callback = eval(arguments[0]);
      someFunction(callback);
    `, "() => console.log('hi')")
    
  • 拆分函数逻辑传递
    把函数内部的逻辑作为字符串参数传递,在执行脚本中包裹成函数:

    driver.executeScript(`
      someFunction(function() {
        ${arguments[0]}
      });
    `, "console.log('hi')")
    

内容的提问来源于stack exchange,提问作者Luís Soares

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:20:37