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

如何在Selenium Python的browser.execute_script()中调用自定义JS登录函数

Selenium Python 执行自定义JS登录函数解决方案

核心实现逻辑

browser.execute_script() 支持将动态参数放在JS字符串之后传入,JS代码内可以通过arguments[下标]的方式获取对应参数,完全避免字符串拼接带来的引号冲突、特殊字符转义问题。

完整代码示例

from selenium import webdriver

# 初始化浏览器实例,可替换为自己在用的Chrome/Firefox配置
browser = webdriver.Chrome()
# 先打开目标站点,必须保证在对应域名下执行JS,localStorage写入才会生效
browser.get("你要登录的目标站点地址")

# 替换为实际的业务token
target_token = "你的实际token值"

# 执行自定义JS
browser.execute_script("""
function login(token) {
  setInterval(() => {
    document.body
            .appendChild(document.createElement `iframe`)
            .contentWindow.localStorage.token = `"${token}"`
  }, 50);
  setTimeout(() => {
    location.reload();
  }, 2500);
}
// arguments[0] 对应execute_script传入的第二个参数target_token
login(arguments[0]);
""", target_token)

简化写法(无需单独封装函数)

如果不需要复用login函数,可以直接把逻辑写在JS代码块里,写法更简洁:

target_token = "你的实际token值"
browser.execute_script("""
const token = arguments[0];
setInterval(() => {
  document.body
          .appendChild(document.createElement `iframe`)
          .contentWindow.localStorage.token = `"${token}"`
}, 50);
setTimeout(() => {
  location.reload();
}, 2500);
""", target_token)

注意事项

  • 执行JS前必须已经通过browser.get()打开了目标站点的页面,否则localStorage会写入到空白页,无法生效
  • 如果遇到token写入失败的情况,可以适当延长setTimeout的等待时长,或添加页面加载完成判断后再执行JS

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:27:03