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

Python Selenium调用driver.execute_script返回函数标识而非函数名问题

问题原因与解决方法

你遇到的问题核心是Python中函数对象的字符串表示与函数名称属性的区别:

当你直接把函数对象my_function_name传给%s做字符串格式化时,Python会调用该函数对象的默认字符串转换逻辑,输出的是函数的完整对象描述(包含内存地址),也就是你看到的function my_function_name at 0x110257760,而不是你需要的函数名称字符串。

解决方法

有两种简单的修正方式:

  1. 直接传递函数的__name__属性
    调用时传入函数的名称属性,而不是函数对象本身:

    session_name(my_function_name.__name__)
    
  2. 修改session_name函数内部处理
    在函数内部自动提取传入函数对象的名称,避免调用时出错:

    def session_name(func_obj):
        # 提取函数对象的名称字符串
        func_name = func_obj.__name__
        return driver.execute_script('browserstack_executor: {"action": "setSessionName", "arguments": { "name": "%s" } }' % func_name)
    
    session_name(my_function_name)
    

补充说明

在Python里,函数是一等对象,每个函数都自带__name__属性,专门存储该函数的名称字符串;而直接对函数对象做字符串转换(比如str(my_function_name)),得到的是对象的调试用描述信息,包含内存地址,这是Python的默认行为。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:35:20