mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
10 KiB
10 KiB
v3.0.2
重大更新。推出WebPage
,重新开发底层逻辑,摆脱对 selenium 的依赖,增强了功能,提升了运行效率。支持 chromium 内核的浏览器(如 chrome 和 edge)。比MixPage
有以下优点:
-
无 webdriver 特征,不会被网站识别
-
无需为不同版本的浏览器下载不同的驱动
-
运行速度更快
-
可以跨 iframe 查找元素,无需切入切出
-
把 iframe 看作普通元素,获取后可直接在其中查找元素,逻辑更清晰
-
可以同时操作浏览器中的多个标签页,即使标签页为非激活状态
-
可以直接读取浏览器缓存来保持图片,无需用 GUI 点击保存
-
可以对整个网页截图,包括视口外的部分(90以上版本浏览器支持)
其它更新:
-
增加
ChromiumTab
和ChromiumFrame
类用于处理 tab 和 frame 元素 -
新增与
WebPage
配合的动作链接ActionChains
-
ini 文件和
DriverOption
删除set_window_rect
属性 -
浏览器启动配置实现对插件的支持
-
浏览器启动配置实现对
experimental_options
的prefs
属性支持
v2.7.3
-
页面对象和元素对象的
screenshot_as_bytes()
方法合并到screenshot()
-
input()
方法接收非文本参数时自动转成文本输入
v2.7.2
- d 模式页面和元素对象增加
screenshot_as_bytes()
方法
v2.7.1
-
DriverPage
-
增加
get_session_storage()
、get_local_storage()
、set_session_storage()
、set_local_storage()
、clean_cache()
方法 -
run_cdp()
的cmd_args
参数改为**cmd_args
-
-
关闭 driver 时会主动关闭 chromedriver.exe 的进程
-
优化关闭浏览器进程逻辑
v2.6.2
- d 模式增加
stop_loading()
方法 - 优化完善监听器功能
v2.6.0
- 新增
Listener
类- 可监听浏览器数据包
- 可异步监听
- 可实现每监听到若干数据包执行操作
- 放弃对selenium4.1以下的支持
- 解决使用新版浏览器时出现的一些问题
v2.5.9
- 优化 s 模式创建连接的逻辑
v2.5.7
- 列表元素
select()
、deselect()
等方法添加timeout
参数,可等待列表元素加载 - 优化了对消息提示框的处理
drag()
和drag_to()
不再检测是否拖拽成功,改成返回None
DriverOptions
对象从父类继承的方法也支持链式操作- 其它优化和问题修复
v2.5.5
DriverPage
添加run_cdp()
方法get()
和post()
方法删除go_anyway
参数- 连接重试默认不打印提示
v2.5.0
- 用 DownloadKit 库替代原来的
download()
方法,支持多线程并发 DriverPage
增加set_ua_to_tab()
方法- 删除
scroll_to()
方法 - 其它优化和问题修复
v2.4.3
wait_ele()
、to_frame()
、scroll_to()
改用类的方式,避免使用字符串方式选择功能scroll_to()
方法改为scroll
属性- 滚动页面或元素增加
to_location()
方式 - 优化
Select
类用法
v2.3.3
DriverPage
添加forward()
方法DriverPage
的close_current_tab()
改为close_tabs()
,可一次过关闭多个标签页DriverPage
添加run_async_script()
DriverPage
添加timeouts
属性DriverPage
添加set_timeouts()
方法DriverElement
添加scroll_to()
方法,可在元素内滑动滚动条DriverOptions
添加set_page_load_strategy()
方法- ini 文件增加
page_load_strategy
、set_window_rect
、timeouts
三个属性 - 其它优化和问题修复
v2.2.1
- 新增基于页面布局的相对定位方法
left()
,right()
,below()
,above()
,near()
,lefts()
,rights()
,belows()
,aboves()
,nears()
- 修改基于 DOM 的相对定位方法:删除
parents()
方法,parent
属性改为parent()
方法,next
属性 改为next()
方法,prev
属性改为prev()
方法,nexts()
和prevs()
方法改为返回多个对象 - 增加
after()
,before()
,afters()
,before()
等基于 DOM 的相对定位方法 - 定位语法增加
@@
和@@-
语法,用于同时匹配多个条件和排除条件 - 改进
ShadowRootElement
功能,现在在 shadow-root 下查找元素可用完全版的定位语法。 DriverElement
的after
和before
属性改为pseudo_after
和pseudo_before
DriverElement
的input()
增加timeout
参数DriverElement
的clear()
增加insure_clear
参数- 优化
DriverElement
的submit()
方法 DriverPage
增加active_ele
属性,获取焦点所在元素DriverPage
的get_style_property()
改名为style()
DriverPage
的hover()
增加偏移量参数DriverPage
的current_tab_num
改名为current_tab_index
DriverPage
的to_frame()
方法返回页面对象自己,便于链式操作- 优化自动下载 driver 逻辑
set_paths()
增加local_port
参数- 默认使用
9222
端口启动浏览器 - 其它优化和问题修复
v2.0.0
- 支持从
DriverElement
或 html 文本生成SessionElement
,可把 d 模式的页面信息爬取速度提高几个数量级(使用新增的s_ele()
和s_eles()
方法) - 支持随时隐藏和显示浏览器进程窗口(只支持 Windows 系统)
- s 模式和 d 模式使用相同的提取文本逻辑,d 模式提取文本效率大增
input()
能自动检测以确保输入成功click()
支持失败后不断重试,可用于确保点击成功及等待页面遮罩层消失- 对 linux 和 mac 系统路径问题做了修复
download()
能更准确地获取文件名- 其它稳定性和效率上的优化
v1.11.7
SessionOptions
增加set_headers()
方法- 调整
MixPage
初始化参数 click()
增加timeout
参数,修改逻辑为在超时时间内不断重试点击。可用于监视遮罩层是否消失- 处理
process_alert()
增加timeout
参数 - 其他优化和问题修复
v1.11.0
set_property()
方法改名为set_prop
- 增加
prop()
clear()
改用 selenium 原生- 增加
r_click()
和r_click_at()
input()
返回None
- 增加
input_txt()
v1.10.0
- 优化启动浏览器的逻辑
- 用 debug 模式启动时可读取启动参数
- 完善
select
标签处理功能 MixPage
类的to_iframe()
改名为to_frame()
MixPage
类的scroll_to()
增加'half'
方式,滚动半页- Drission 类增加
kill_browser()
方法
v1.9.0
- 元素增加
click_at()
方法,支持点击偏移量 download()
支持重试- 元素
input()
允许接收组合键,如ctrl+a
- 其它优化
v1.8.0
- 添加
retry_times
和retry_interval
属性,可统一指定重连次数 - 元素对象增加
raw_text
属性 - 元素查找字符串支持极简模式,用
x
表示xpath
、c
表示css
、t
表示tag
、tx
表示text
- s 模式元素
text
尽量与 d 模式保持一致 - 其它完善和问题修复
v1.7.7
- 创建
WebDriver
时可自动下载 chromedriver.exe - 修复获取不到
content-type
时会出现的问题
v1.7.1
- d 模式如指定了调试端口,可自动启动浏览器进程并接入
- 去除对 cssselect 库依赖
- 提高查找元素效率
- 调整获取元素 xpath 和 css_path 逻辑
v1.7.0
- 优化
cookies
相关逻辑 MixPage
增加get_cookies()
和set_cookies()
方法- 增加
SessionOptions
类 - 浏览文件
DriverElement
增加remove_attr()
方法 - 修复
MixPage
初始化时Session
导入cookies
时的问题 MixPage
的close_other_tabs()
方法现在可以接收列表或元组以保留多个 tab- 其它优化
v1.6.1
- 增加
.
和#
方式用于查找元素,相当于@Class
和@id
- easy_set 增加识别 chrome 版本并自动下载匹配的 chromedriver.exe 功能
- 改进配置功能
- 修复 shadow-root 方面的问题
v1.5.4
- 优化获取编码的逻辑
- 修复下载不能显示进度的问题
v1.5.2
- 修复获取 html 时会把元素后面的文本节点带上的问题
- 修复获取编码可能出现的错误
- 优化
download()
和获取编码代码
v1.5.1
- 修复获取编码可能出现的 bug
v1.5.0
- s 模式使用 lxml 库代替 requests_html 库
- 可直接调用页面对象和元素对象获取下级元素,
element('@id=ele_id')
等价于element.ele('@id=ele_id')
nexts()
、prevs()
方法可获取文本节点- 可获取伪元素属性及文本
- 元素对象增加
link
和inner_html
属性 - 各种优化
v1.4.0
- d 模式使用 js 通过
evaluate()
方法处理 xpath,放弃使用 selenium 原生的方法,以支持用 xpath 直接获取文本节点、元素属性 - d 模式增加支持用 xpath 获取元素文本、属性
- 优化和修复小问题
v1.3.0
- 可与 selenium 代码无缝对接
- 下载功能支持 post 方式
- 元素添加
texts
属性,返回元素内每个文本节点内容 - s 模式增加支持用 xpath 获取元素文本、属性
v1.2.1
- 优化修复网页编码逻辑
download()
函数优化获取文件名逻辑- 优化
download()
获取文件大小逻辑 - 优化
MixPage
对象关闭 session 逻辑
v1.2.0
- 增加对 shadow-root 的支持
- 增加自动重试连接功能
MixPage
可直接接收配置- 修复一些 bug
v1.1.3
- 连接有关函数增加是否抛出异常参数
- s 模式判断编码优化
- d 模式
check_page()
优化 - 修复
run_script()
遗漏args
参数的问题
v1.1.1
- 删除
get_tabs_sum()
和get_tab_num()
函数,以属性tabs_count
和current_tab_num
代替 - 增加
current_tab_handle
、tab_handles
属性 to_tab()
和close_other_tabs()
函数可接收handle
值create_tab()
可接收一个 url 在新标签页打开- 其它优化和 bug 修复
v1.1.0
- 元素对象增加 xpath 和 css path 路径属性
- 修复 driver 模式下元素对象用 css 方式不能获取直接子元素的问题(selenium 的锅)
- s 模式下现在能通过 xpath 定位上级元素
- 优化 d 模式兄弟元素、父级元素的获取效率
- 优化标签页处理功能
- 其它小优化和修复
V1.0.5
- 修复切换模式时 url 出错的 bug
V1.0.3
DriverOptions
支持链式操作download()
函数增加参数处理遇到已存在同名文件的情况,可选跳过、覆盖、自动重命名download()
函数重命名调整为只需输入文件名,不带后缀名,输入带后缀名也可自动识别
V1.0.1
- 增强拖拽功能和 chrome 设置功能
V0.14.0
Drission
类增加代理设置和修改
V0.12.4
click()
的by_js
可接收False
- 修复一些 bug
V0.12.0
- 增加
tag:tagName@arg=val
查找元素方式 MixPage
增加简易方式创建对象方式
V0.11.0
- 完善
easy_set
的函数 - 元素增加多级定位函数
v0.10.2
- 完善
attr
及attrs
功能
v0.10.1
- 增加
set_headless()
以及to_iframe()
兼容全部原生参数
v0.9.4
- 修复 bug
v0.9.0
- 增加了元素拖拽和处理提示框功能
v0.8.4
- 基本完成