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

Selenium IDE中调用eval()被CSP阻止问题求助

解决Selenium IDE中因CSP阻止eval()导致的点击/输入失败问题

看起来你在Selenium IDE里执行点击firstName元素的步骤时踩了CSP的坑——这个call to eval() blocked by CSP错误其实很好理解:目标页面的**内容安全策略(CSP)**禁止了eval()这类动态代码执行操作,而Selenium IDE在底层处理元素交互时,刚好用到了被CSP限制的eval()方法,所以直接报错了。

给你几个实用的解决思路,按优先级来:

  • 优先调整Selenium IDE的设置
    打开IDE右上角的齿轮图标进入设置,找「Experimental Features」或者「高级设置」板块,找到类似「启用原生事件」或者「避免使用eval()执行命令」的选项并勾选。IDE会切换到更合规的交互方式,绕过CSP对eval()的限制,大部分情况下这个方法就能解决问题。

  • 如果有权限修改测试环境的网站,调整CSP规则
    要是你能控制测试页面的配置,可以给页面的CSP头添加unsafe-eval权限,比如把script-src指令改成:

    Content-Security-Policy: script-src 'self' 'unsafe-eval';
    

    注意哈,这个操作会降低网站的安全等级,只建议在测试环境里用,别放到生产环境。

  • 换用WebDriver代码实现测试用例
    如果上面两个方法都不管用,可以把IDE里的用例导出成WebDriver代码(比如Python、Java),直接用代码执行。WebDriver的原生交互逻辑不会依赖eval(),比如Python的示例代码:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    
    driver = webdriver.Chrome()
    driver.get("你的测试页面URL")
    # 先点击输入框,再输入内容
    first_name_input = driver.find_element(By.ID, "firstName")
    first_name_input.click()
    first_name_input.send_keys("你的测试输入值")
    

另外可以先做个小排查:在浏览器控制台手动执行document.getElementById('firstName').click(),如果也触发CSP错误,那就是页面本身的CSP限制;如果手动执行没问题,那肯定是IDE的执行方式导致的,直接调IDE设置就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:37:46