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

Selenium技巧:如何在代码执行完毕后保持浏览器打开

解决方案:替代time.sleep保持Chrome浏览器打开的更优方法

你已经在代码里用到了关键配置,但可以通过更合理的方式实现需求,以下是两种实用方案:

方法1:充分利用detach实验选项

你添加的options.add_experimental_option("detach", True)本身就是Selenium官方提供的脚本执行完毕后保持浏览器打开的方案。这个选项会让Chrome浏览器进程与WebDriver驱动进程分离,即使脚本运行结束,浏览器也不会自动关闭。

所以你完全可以删掉最后的time.sleep(999999),脚本执行完成后浏览器会正常保留,你可以继续操作。

调整后的代码末尾示例:

alert = Alert(driver)
print(alert.text)

# 移除time.sleep(999999),detach选项会自动维持浏览器打开状态

方法2:交互式等待(适合需要手动确认的场景)

如果希望脚本执行完后,等待你手动触发才结束(比如需要先在浏览器里完成额外操作再关闭脚本),可以用input()函数替代固定时长的time.sleep,只有当你按下回车键时,脚本才会结束,浏览器在此期间始终保持打开:

alert = Alert(driver)
print(alert.text)

# 等待用户输入,按回车后脚本才会结束
input("操作完成后按回车键退出脚本...")

额外优化:定时等待的更可靠写法

你代码里用time.sleep(wait_time.total_seconds())等待指定时间执行点击的方式,若系统时间有偏差或页面状态变化可能不够灵活。可以改用循环检查时间的方式,同时加入短间隔sleep避免占用过高CPU:

enrollment_time = datetime.datetime(2023, 2, 6, 10, 20, 1, 0)
while datetime.datetime.now() < enrollment_time:
    # 每1秒检查一次时间,降低资源消耗
    time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="btn_basketSave"]').click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:01:17