Python使用DrissionPage实现浏览器关闭操作

 更新时间:2026年02月25日 16:23:34   作者:detayun  
在DrissionPage中关闭浏览器主要通过调用close()方法实现,具体操作取决于浏览器控制方式(如Selenium模式或无头模式),下面小编就和大家详细介绍一下具体步骤吧

在DrissionPage中关闭浏览器主要通过调用close()方法实现,具体操作取决于浏览器控制方式(如Selenium模式或无头模式)。以下是详细步骤和示例代码:

1.DrissionPage介绍

DrissionPage是一个基于Python的浏览器自动化库,它提供了三种访问模式:ChromiumPage、WebPage和SessionPage。这些模式覆盖了从图形化用户操作到数据包控制的全方位需求,让开发者能够更加灵活地应对各种网页自动化任务。

三大核心模式

1. ChromiumPage:图形化浏览器自动化

ChromiumPage是操作浏览器的页面对象,使用Chromium内核进行页面加载和交互,类似于Selenium的WebDriver。它支持页面元素的查找、点击、输入、截图等操作,适合需要图形化界面展示的网页自动化任务。

2. WebPage:浏览器控制与数据包收发

WebPage结合了浏览器控制和数据包的收发,可以拦截和修改网络请求,适合需要同时操作浏览器和处理数据包的复杂任务。

3. SessionPage:轻量级数据交互

SessionPage专用于数据包收发,类似于Python的requests库,适合快速发送和接收数据的任务,无需渲染网页内容。

2. 基本关闭方法

from DrissionPage import ChromiumPage

# 创建页面对象(以Chromium为例)
page = ChromiumPage()

# 打开网页
page.get('https://example.com')

# 关闭浏览器
page.close()  # 关闭当前标签页
# 或
page.quit()   # 关闭整个浏览器进程(更彻底)

3. 关闭特定标签页

如果打开了多个标签页,可通过page.close_tab()关闭指定标签页:

# 打开新标签页
page.new_tab('https://example.org')

# 切换到第一个标签页
page.switch_tab(0)

# 关闭当前标签页(保留浏览器)
page.close()

4. 彻底退出浏览器进程

使用quit()方法确保释放所有资源:

page.quit()  # 关闭所有标签页并终止浏览器进程

5. 处理无头模式

在无头模式下同样适用上述方法:

from DrissionPage import ChromiumPage

page = ChromiumPage(headless=True)
page.get('https://example.com')
page.quit()  # 无头浏览器也会被彻底关闭

关键区别:

  • close():关闭当前活动标签页,若只剩一个标签页则关闭浏览器。
  • quit():强制终止整个浏览器进程,释放所有资源(推荐在脚本结束时使用)。

注意事项:

  • 确保在操作完成后调用关闭方法,避免浏览器进程残留。
  • 若使用多线程/多进程,需在每个线程/进程中独立管理浏览器实例。
  • 关闭浏览器后,相关页面对象将失效,不可再操作。

通过上述方法,您可以安全、高效地关闭DrissionPage控制的浏览器实例。

6.知识扩展

下面小编整理了一些DrissionPage自动化操作浏览器的相关方法,希望对大家有所帮助

安装DrissionPage

首先,我们需要安装DrissionPage库。在终端或命令提示符中运行以下命令:

pip install drission

初始化ChromiumPage

接下来,我们初始化ChromiumPage对象:

from drission import Drission
drission = Drission()
page = drission.use_chromium()

打开页面

使用get()方法加载一个页面:

page.get("https://example-login.com")

查找元素并输入

使用input()方法将文本输入到输入框或文本框中:

page.input("#username", "your_username")
page.input("#password", "your_password")

点击登录按钮

使用click()方法对页面中的元素进行点击操作:

page.click("#login_button")

等待元素加载

使用wait()方法等待页面元素加载完成:

page.wait('div.welcome-message')

获取欢迎信息

使用ele()方法获取元素,并打印欢迎信息:

welcome_text = page.ele('div.welcome-message').text
print("Welcome message:", welcome_text)

关闭浏览器

在完成所有操作后,使用close()方法关闭ChromiumPage,释放资源:

page.close()

DrissionPage的优势

  • 轻量级:相较于Selenium和Playwright,DrissionPage更加轻量,启动和运行速度更快。
  • 易用性:API设计简洁直观,易于学习和使用。
  • 功能强大:覆盖了从基本的网页操作到复杂的数据交互,满足各种自动化需求。

到此这篇关于Python使用DrissionPage实现浏览器关闭操作的文章就介绍到这了,更多相关Python DrissionPage关闭浏览器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python搭建微信公众平台

    python搭建微信公众平台

    这篇文章主要介绍了python搭建微信公众平台的相关资料和技巧,感兴趣的朋友可以参考一下
    2016-02-02
  • scratch3.0二次开发之用blocks生成python代码

    scratch3.0二次开发之用blocks生成python代码

    python是blockl.generator的一个实例,会调用generator里的方法,这篇文章主要介绍了scratch3.0二次开发之用blocks生成python代码,需要的朋友可以参考下
    2021-08-08
  • PyTorch 迁移学习实践(几分钟即可训练好自己的模型)

    PyTorch 迁移学习实践(几分钟即可训练好自己的模型)

    这篇文章主要介绍了PyTorch 迁移学习实践(几分钟即可训练好自己的模型),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python中创建和修改yaml文件的方法

    python中创建和修改yaml文件的方法

    YAML 是 "YAML Ain’t a Markup Language"的递归缩写,yaml简洁美观,是一种常用的标记语言,可以用来表达多种数据结构和配置文件,本文给大家介绍python中如何创建和修改yaml文件,感兴趣的朋友一起看看吧
    2023-11-11
  • Python多重继承慎用的地方

    Python多重继承慎用的地方

    多重继承也可能导致一些问题,本文主要介绍了Python多重继承慎用的地方,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • 基于python 处理中文路径的终极解决方法

    基于python 处理中文路径的终极解决方法

    下面小编就为大家分享一篇基于python 处理中文路径的终极解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python 递归深度优先搜索与广度优先搜索算法模拟实现

    python 递归深度优先搜索与广度优先搜索算法模拟实现

    这篇文章主要介绍了python 递归深度优先搜索与广度优先搜索算法模拟实现 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • 删除目录下相同文件的python代码(逐级优化)

    删除目录下相同文件的python代码(逐级优化)

    让我们来分析一下这个问题:首先,文件个数非常多,手工查找是不现实的,再说,单凭我们肉眼,在几千张图片里面找到完全相同的难度也是很大的
    2012-05-05
  • 简单几步教你学会Python接口自动化测试

    简单几步教你学会Python接口自动化测试

    这篇文章主要介绍了简单几步教你学会Python接口自动化测试,本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势,期望读者可以通过本文对接口自动化测试有一个大致的了解,需要的朋友可以参考下
    2023-08-08
  • 详解pyenv下使用python matplotlib模块的问题解决

    详解pyenv下使用python matplotlib模块的问题解决

    这篇文章主要介绍了详解pyenv下使用python matplotlib模块的问题解决,非常具有实用价值,需要的朋友可以参考下
    2018-11-11

最新评论