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()就行。内部会自动关闭关联的标签页。