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
相关产品推荐
相关产品推荐

