最近在学Selenium的时候遇到一个问题,当我执行完程序,浏览器自动关闭了,我在程序中也没有写driver.quit()方法,代码如下:

from selenium import webdriver

class ServiceConfig():

    # 定义prepareWork函数,做准备工作
    def prepareWork(self,url):
        # 打开浏览器驱动
        driver = webdriver.Chrome(r'd:\chromedriver.exe')
        driver.implicitly_wait(10)

        driver.get(url)

if __name__ == '__main__':
    url = 'https://www.baidu.com'
    sc = ServiceConfig()
    sc.prepareWork(url)

后面发现是因为我把driver = webdriver.Chrome(r’d:\chromedriver.exe’)放在了函数内部,在函数执行完毕之后,程序内所有的步骤都结束了,关于这段程序的进程也就结束了,浏览器包含在内,所以才会自动退出。

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

from selenium import webdriver

# 打开浏览器驱动
driver = webdriver.Chrome(r'd:\chromedriver.exe')
driver.implicitly_wait(10)

class ServiceConfig():

    # 定义prepareWork函数,做准备工作
    def prepareWork(self,url):
        driver.get(url)

if __name__ == '__main__':
    url = 'https://www.baidu.com'
    sc = ServiceConfig()
    sc.prepareWork(url)