求助:Selenium启动Chrome浏览器后立即关闭问题
解决Chrome浏览器执行Selenium代码后立即关闭的问题
你的代码里,driver是在全局作用域初始化的,当verify_title()函数执行完毕,整个Python程序就会终止,Python的垃圾回收机制会自动销毁driver实例,进而导致Chrome浏览器被关闭——哪怕你删除了driver.quit()也无法阻止这个行为。
另外提醒下你代码里的小语法错误:验证失败的print语句中,expected_title后面少了一个单引号,正确写法应该是:
print(f"Title verification failed. Expected '{expected_title}', but got '{title}'.")
解决方法一:添加程序暂停逻辑
在程序末尾加入暂停输入的代码,让程序不会立刻终止,从而保持浏览器打开:
修改主函数部分:
if __name__ == '__main__': verify_title() input("按回车键关闭浏览器...") # 程序会等待用户输入后才结束
解决方法二:调整driver的生命周期
把driver的初始化移到函数内部,同时手动控制程序结束时机,避免垃圾回收提前销毁实例:
完整修改后的代码:
from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager def verify_title(): # 将driver初始化移到函数内部 driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install())) driver.get("https://google.com") title = driver.title expected_title = "Google" if title == expected_title: print("Title verification successful!") else: print(f"Title verification failed. Expected '{expected_title}', but got '{title}'.") # 不调用driver.quit(),添加暂停输入保持浏览器打开 input("按回车键关闭浏览器...") if __name__ == '__main__': verify_title()
内容的提问来源于stack exchange,提问作者Mr_Shoryuken
相关产品推荐
相关产品推荐

