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

如何使用Playwright Python修改浏览器时钟?

使用Playwright Python修改浏览器时钟

完全可以通过Playwright Python实现修改浏览器时钟,核心是利用Playwright的脚本注入能力,在页面中覆盖原生的Date相关方法——和你了解的JavaScript方案逻辑一致,但无需手动转换代码后单独执行,直接通过Python API就能完成。

初始化时固定时钟(页面加载前生效)

如果希望页面一加载就使用自定义时间,推荐用add_init_script注入初始化脚本,这样页面内所有依赖时间的逻辑都会优先使用你设定的时间:

from playwright.sync_api import sync_playwright

def set_fixed_browser_time():
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=False)
        # 目标时间的时间戳(毫秒),示例为2023-10-01 12:00:00
        target_ts = 1696142400000
        
        # 注入覆盖Date的脚本
        browser.add_init_script(f"""
            const originalDate = Date;
            // 重写无参数的Date构造
            Date = function(...args) {{
                return args.length === 0 ? new originalDate({target_ts}) : new originalDate(...args);
            }};
            // 复制原生静态方法并修改now()
            Object.assign(Date, originalDate);
            Date.now = () => {target_ts};
        """)
        
        page = browser.new_page()
        page.goto("https://example.com")
        # 验证时间是否生效
        current_page_time = page.evaluate("new Date().toString()")
        print("页面当前时间:", current_page_time)
        
        browser.close()

set_fixed_browser_time()

页面加载后动态修改时钟

如果需要在页面运行过程中调整时间,用page.evaluate执行修改脚本即可:

# 在页面加载完成后执行这段代码
new_target_ts = 1698734400000  # 示例为2023-10-31 12:00:00
page.evaluate(f"""
    const originalDate = Date;
    Date = function(...args) {{
        return args.length === 0 ? new originalDate({new_target_ts}) : new originalDate(...args);
    }};
    Object.assign(Date, originalDate);
    Date.now = () => {new_target_ts};
""")

# 验证修改结果
updated_time = page.evaluate("new Date().toString()")
print("修改后页面时间:", updated_time)

注意事项

  • 这种方式会覆盖页面内所有原生Date调用,包括第三方脚本的时间逻辑,能模拟系统时钟修改的效果。
  • 部分网站会校验客户端时间与服务器时间的差值,这种客户端修改方式可能无法绕过这类校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:53:17