跳到主要内容

🌏 导入


DrissionPage 提供的功能放在以下几个路径:

  • from DrissionPage import ****:浏览器类、配置类、页面类
  • from DrissionPage.errors import ****:异常
  • from DrissionPage.common import ****:辅助工具
  • from DrissionPage.items import ****:衍生对象,用于类型判断

✅️ 浏览器类

📌 Chromium

浏览器类用于连接浏览器、管理标签页及其它和浏览器总体有关的操作。

浏览器类相当于总管,它可以作为浏览器入口,使用它产生 Tab 对象去操控每个标签页。

from DrissionPage import Chromium

✅️ 页面类

📌 ChromiumPage

ChromiumPage是将浏览器对象和第一个标签页对象封装在一起,用于控制浏览器。

ChromiumPage只是简化了操作,使用效果和直接使用Chromium对象基本一致。

唯一区别是,ChromiumPage生成的标签页对象是ChromiumTab,不能切换模式。

from DrissionPage import ChromiumPage

📌 WebPage

WebPageChromiumPage相似,不过其自身及其产生的 Tab 对象可切换模式,既可控制浏览器,也可收发数据包。

from DrissionPage import WebPage

📌 SessionPage

SessionPage用于收发数据包,是对 requests 和 lxml 进行封装实现的。

它把网络连接和结果解析封装成页面。操作逻辑和其它页面一致。

from DrissionPage import SessionPage

✅️ 配置工具

📌 ChromiumOptions

ChromiumOptions类用于设置浏览器启动参数。

这些参数只有在启动浏览器时有用,接管已存在的浏览器时是不生效的。

from DrissionPage import ChromiumOptions

📌 SessionOptions

SessionOptions类用于设置Session对象启动参数。

用于配置SessionPageWebPage的 s 模式的连接参数。

from DrissionPage import SessionOptions

📌 Settings

Settings用于设置全局运行配置,如找不到元素时是否抛出异常等。

from DrissionPage.common import Settings

✅️ 辅助工具

📌 Keys

键盘按键类,用于键入 ctrl、alt 等按键。

from DrissionPage.common import Keys

📌 By

与 selenium 一致的By类,便于项目迁移。

from DrissionPage.common import By

📌 其它工具

这些工具都在DrissionPage.common路径中。

  • wait_until:可等待传入的方法结果为真
  • make_session_ele:从 html 文本生成ChromiumElement对象
  • configs_to_here:把配置文件复制到当前路径
  • get_blob:获取指定的 blob 资源
  • tree:用于打印页面对象或元素对象结构
  • from_selenium:用于对接 selenium 代码
  • from_playwright:用于对接 playwright 代码
from DrissionPage.common import wait_until
from DrissionPage.common import make_session_ele
from DrissionPage.common import configs_to_here

✅️ 异常

异常放在DrissionPage.errors路径。

全部异常详见进阶使用章节。

from DrissionPage.errors import ElementNotFoundError

✅️ 衍生对象类型

Tab、Element 等被其它对象生成的对象,开发过程中需要类型判断时需要导入这些类型。

可在DrissionPage.items路径导入。

from DrissionPage.items import SessionElement
from DrissionPage.items import ChromiumElement
from DrissionPage.items import ShadowRoot
from DrissionPage.items import NoneElement
from DrissionPage.items import ChromiumTab
from DrissionPage.items import MixTab
from DrissionPage.items import ChromiumFrame