ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-09-08 12:31:20  阅读:255  来源: 互联网

标签:__ webdriver 浏览器 Chrome driver 程序执行 python run options


遇到问题:

最近在学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)

 

标签:__,webdriver,浏览器,Chrome,driver,程序执行,python,run,options
来源: https://www.cnblogs.com/muxiaomu/p/16669022.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有