首页 / DrissionPage 入门教程 / 浏览器对象操作

DrissionPage 入门教程

浏览器对象操作

本教程共 42 篇 · 第 8 篇 · 更新于 2026-07-29 · 约 6 分钟阅读

DrissionPageDrissionPage 入门教程Chromium对象标签页管理超时设置

8. 浏览器对象操作

本节目标:掌握 Chromium 对象的常用方法,能灵活获取和管理标签页,配置运行参数。

Chromium 对象是浏览器的总管。

所有和浏览器整体相关的操作都由它负责。

获取标签页

latest_tab

获取最新的标签页对象:

browser = Chromium()
tab = browser.latest_tab

本地浏览器返回最后激活的标签页。远程浏览器返回最后创建的。

get_tab()

按条件精确查找标签页:

# 获取第一个标签页
tab = browser.get_tab(1)

# 按序号获取(负数表示倒数)
tab = browser.get_tab(-1)

# 按标题模糊匹配
tab = browser.get_tab(title='百度')

# 按 URL 模糊匹配
tab = browser.get_tab(url='baidu.com')

# 组合条件
tab = browser.get_tab(title='百度', url='baidu.com')

get_tabs()

获取所有符合条件的标签页:

# 获取所有标签页
tabs = browser.get_tabs()

# 按类型筛选
tabs = browser.get_tabs(tab_type='page')

tab_ids 和 tabs_count

# 获取所有标签页 ID
ids = browser.tab_ids

# 获取标签页数量
count = browser.tabs_count

操作标签页

new_tab()

新建标签页:

# 新建空标签页
tab = browser.new_tab()

# 新建并打开网址
tab = browser.new_tab('https://www.baidu.com')

# 在后台打开(不激活)
tab = browser.new_tab('https://www.baidu.com', background=True)

activate_tab()

激活指定标签页,让它显示到前端:

# 传入标签页 ID
browser.activate_tab('tab_id_xxx')

# 传入序号
browser.activate_tab(1)

# 传入 Tab 对象
browser.activate_tab(tab)

close_tabs()

关闭标签页:

# 关闭指定标签页
browser.close_tabs(tab)

# 关闭多个
browser.close_tabs([tab1, tab2])

# 关闭指定标签页之外的所有标签页
browser.close_tabs(tab, others=True)

超时设置

# 设置基础超时时间(秒)
browser.set.timeouts(base=10)

# 设置页面加载超时
browser.set.timeouts(page_load=30)

# 设置脚本运行超时
browser.set.timeouts(script=10)

# 同时设置多个
browser.set.timeouts(base=10, page_load=30, script=10)

重试设置

# 设置连接失败重试次数
browser.set.retry_times(5)

# 设置重试间隔(秒)
browser.set.retry_interval(2)

加载模式

# 正常模式:等待所有资源加载完毕
browser.set.load_mode.normal()

# 急切模式:DOM 加载完就停止
browser.set.load_mode.eager()

# 不等待:发请求后不阻塞
browser.set.load_mode.none()

下载路径

# 获取当前下载路径
path = browser.download_path

单例模式

默认一个标签页只有一个 Tab 对象:

tab1 = browser.get_tab(1)
tab2 = browser.get_tab(1)
print(tab1 is tab2)  # True,同一个对象

需要多个对象同时管理一个标签页时,关闭单例模式:

from DrissionPage.common import Settings

Settings.set_singleton_tab_obj(False)

tab1 = browser.get_tab(1)
tab2 = browser.get_tab(1)
print(tab1 is tab2)  # False,不同对象

关闭后 latest_tab 会改成返回 ID 而不是对象。

浏览器信息

browser = Chromium()

# 用户数据文件夹路径
print(browser.user_data_path)

# 标签页数量
print(browser.tabs_count)

# 所有标签页 ID
print(browser.tab_ids)

关闭浏览器

browser.quit()

关闭浏览器和所有标签页,释放资源。

TIP:用 ChromiumPage 时,直接调用 page.quit() 就行。内部会自动关闭关联的标签页。