2025年2月19日 星期三 甲辰(龙)年 腊月十九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

解决python运行selenium程序执行完后,Chrome浏览器自动关闭的问题

时间:02-25来源:作者:点击数:23

遇到问题:

最近在学Selenium的时候遇到一个问题,当我执行完程序,浏览器自动关闭了,我在程序中也没有写driver.quit()或driver.close()方法,已检查浏览器版本和webdriver版本是相同的

代码如下:

  • from selenium import webdriver
  • def run_webdriver():
  • options = webdriver.ChromeOptions()
  • options.add_argument('--start-maximized')
  • driver=webdriver.Chrome(options=options)
  • driver.get('https://www.baidu.com')
  • if __name__ == '__main__':
  • run_webdriver()

查找原因:

进过一番百度,查到了大致原因,在函数内执行的浏览器操作,在函数执行完毕之后,程序内所有的步骤都结束了,关于这段程序的进程也就结束了,浏览器包含在内;如果将浏览器全局后,打开浏览器不在函数内部,函数里面的程序执行完是不会关闭浏览器的。

解决方法:

方法一)设置option.add_experimental_option("detach", True)不自动关闭浏览器

  • from selenium import webdriver
  • def run_webdriver():
  • options = webdriver.ChromeOptions()
  • options.add_experimental_option('detach', True) #不自动关闭浏览器
  • options.add_argument('--start-maximized')#浏览器窗口最大化
  • driver=webdriver.Chrome(options=options)
  • driver.get('https://www.baidu.com')
  • if __name__ == '__main__':
  • run_webdriver()

方法二)设置全局driver = '' ,在函数里global driver driver= webdriver.Chrome(),也是可以的,不会关闭

  • from selenium import webdriver
  • driver=''
  • def run_webdriver():
  • global driver
  • options = webdriver.ChromeOptions()
  • options.add_argument('--start-maximized')#浏览器窗口最大化
  • driver=webdriver.Chrome(options=options)
  • driver.get('https://www.baidu.com')
  • if __name__ == '__main__':
  • run_webdriver()

方法三)同方法二,设置全局变量,即把打开浏览器的操作放在函数外部,函数执行完毕,浏览器就不会关闭

  • from selenium import webdriver
  • options = webdriver.ChromeOptions()
  • options.add_argument('--start-maximized') # 浏览器窗口最大化
  • driver = webdriver.Chrome(options=options)
  • def run_webdriver(url):
  • driver.get(url)
  • if __name__ == '__main__':
  • url='https://www.baidu.com'
  • run_webdriver(url)
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门