📒 v4.x
v4.1.0.0
- 重构 Page 对象,引入
Chromium
对象用于代表浏览器 WebPage
改名为MixPage
,WebPageTab
改名为MixTab
activate_tab()
取代set.tab_to_front()
- Frame 对象增加
set.property()
和set.style()
cookies()
删除to_dict
参数,增加to_dict()
和to_str()
方法- 浏览器页面和元素对象的
s_ele()
和s_eles()
方法增加tiemout
参数 - 浏览器页面和元素对象增加
rect.scroll_position
属性 - 动作链删除
db_click()
,各点击方法增加times
参数 ChromiumOptions
增加new_env()
方法,ini 文件增加new_env
参数,用于指定必须用新环境ChromiumOptions
增加is_headless
属性auto_port()
方法删除tmp_path
参数set.cookies()
忽略过期 cookietimeout
属性不接受赋值- 修复
new_tab()
在访客模式报错的问题 - 修复 Frame 对象滚动填入
tuple
定位符报错问题 - 优化连接浏览器失败报错
v4.0.5.6
- 优化
auto_port()
逻辑 set.cookies()
忽略过期的 cookie- 修复下载文件可能出现无写入权限报错
- 修复
SessionPage
的 headers 设置问题 - 修复链接以
'./'
开头时ele.link
获取不准确的问题 - 修复异域
<iframe>
跳转到同域时的问题
v4.0.5.2
- 增加视觉相对定位语法 [详情]
- 改进元素结果列表筛选功能 [详情]
wait.has_rect()
和wait.covered()
返回具体信息- 删除元素获取任意属性语法
- 删除之前声明废弃的参数、方法和属性
- 修复
states.is_alive()
和wait.deleted()
问题
v4.0.4.25
- 支持对
eles()
返回的列表进行筛选 DrissionPage.common
新增get_eles()
方法,可接收多个定位符获取多个元素 [详情]input()
输入前会自动等待元素可点击set.cookies()
接收str
形式 cookies 时,只支持用';'
做分隔符- 修复监听一个报错
v4.0.4.23
- 元素增加
states.is_clickable
属性 和wait.clickable()
、set.style()
方法 tree()
增加text
、show_js
、show_css
参数wait.stop_moving()
参数顺序改变tab_ids
属性不再屏蔽插件标签页- 修复
SessionPage
的get()
方法访问本地中文路径问题 - 等待元素时可抛出页面断开异常
v4.0.4.22
- 动作链
scroll()
方法参数位置变化 - 页面对象的
save()
方法可根据后缀自动判断类型 - 中键单击返回 Tab 对象
tab_ids
属性忽略插件 tab- 优化 cookies 设置逻辑
- Frame 对象初始化时不再等待 url 变化
- 修复全局代理时无法连接浏览器的问题
- 修复截图文件名过长时的问题
- 修复带 html 节点的 shadow root 获取不到子元素问题
- 降低失去元素报错可能性
v4.0.4.21
add_ele()
的outerHTML
参数改为html_or_info
,可新增不插入到 DOM 的元素wait.ele_loaded()
改成wait.eles_loaded()
,可等待多个元素全部或任一个加载- 取消无界面 Linux 自动无头功能
- 调整
quit()
逻辑 - 修复 prompt 无法输入的问题
- 修复
WebPageTab
的close()
报错问题 - 修复下拉列表已选中元素再点击会取消的问题
- 修复
run_js()
无法添加dict
参数问题 - 修复
set.cookies()
的一个问题
v4.0.4.17
- Page 对象的
set.auto_handle_alert()
增加all_tabs
参数 - 修复
ele.text
速度慢的问题 - 修复在未访问网页时设置
'__Host-'
开头的 cookie 时出现的问题
v4.0.4.16
ChromiumPage
增加browser_version
属性DataPacket.request
增加cookies
属性wait_slient()
方法增加limit
参数Keys
增加CTRL_A
等 6 个组合键- 元素的
save()
方法增加rename
参数 - 元素的
input()
方法的clear
参数默认值改为False
- 动作链
type()
可接收键盘以外的字符 get_tab()
和get_tabs()
默认获取普通 tab- 修复动作链
wait()
问题
v4.0.4.13
- 动作链
wait()
增加随机功能 - 当 tab 设置不为单例时,
latest_tab
返回 tab id - 修复新标签页重复创建连接问题
- 修复等待新 tab 不正确问题
v4.0.4.12
- 元素增加获取任意属性方式
- 调整
quit()
逻辑 - 优化
set.cookies()
逻辑 - 修复
get_tab()
问题 - 修复
set_flags()
特定情况下出现的问题 - 修复某
WebPage
在些情况下get_tab()
时出现的问题
v4.0.4.9
get_tab()
方法增加几个参数find_tabs()
方法改为get_tabs()
,且改为默认返回标签页对象- 设置
headers
时可接收从浏览器复制的文本格式 common
路径增加from_selenium()
和from_playwright()
方法latest_tab
改为返回标签页对象tabs
属性改为tab_ids
- 修复从文本生成的静态元素
link
属性报错问题 - 修复保存的 mhtml 文件无法被浏览器解析问题
v4.0.4.8
- 增加
click.for_new_tab()
方法 wait()
方法增加scope
参数,可等待指定随机时间set.upload_files()
和click.to_upload()
方法支持接收Path
类型click.to_download()
增加timeout
参数- 元素对象
page
属性改为指向总体的 Page对象,增加owner
属性 - 完善找 chrome 路径逻辑
- 调整
quit()
逻辑 - 修复处理有些下拉列表时报错问题
- 修复页面用 css 查找元素时会找到文本的问题
- 修复用 css 在元素下获取多个子元素时数量不正确问题
- 修复在 ini 文件设置下载路径时报错问题
- 修复
run_async_js()
报错问题 - 修复
reconnect()
报错问题
v4.0.4.5
- 截图左上和右下参数可只接收其中一个
- 配置对象
save()
可生成不存在的路径 - 增加
click.to_upload()
和click.to_download()
方法 DrissionPage.common
增加tree()
方法- 去除
upload()
方法 - 修复
handle_alert()
- 修复一个 js 结果解析问题
- 修复命令行问题
v4.0.4.3
ChromiumOptions
增加clear_arguments()
、clear_prefs()
和clear_flags()
方法- 浏览器页面对象增加
upload()
方法 - 浏览器页面对象增加
add_ele()
方法 run_js()
方法可读取文件click.multiple()
改为click.multi()
- 修复旧版 python 中
get()
报错问题
v4.0.4.1
- 打包程序即使不带上 ini 文件也不会报错
SessionOptions
增加clear_headers()
方法Settings
增加cdp_timeout
属性prop()
改成property()
,参数改为name
get_cookies()
改为cookies()
get_src()
改为src()
- 删除
cookies
属性 get_session_storage()
、get_local_storage()
改为session_storage()
、local_storage()
pageLoad
改成page_load
set_a_header()
、remove_a_header()
、set.header()
、set.attr()
的参数改为name
- 元素增加
value
属性和set.value()
方法 loc_or_ele
、loc_or_str
等参数改为locator
- 提高截图 jpg 格式画质
- 修复 s 模式
timeout
参数失效问题 - 修复
wait.has_rect()
等出现的问题 - 修复找不到浏览器路径时报 ini 错误问题
- 增加一些提示
v4.0.3.4
此版本对项目进行了大量重构,新增了不少功能,改善了运行逻辑,优化了项目结构,解决了很多以前积累的问题。对比旧版本有质的提高。
但同时很多 api 产生了变化,不能完全兼容旧版本。
- 改进抓包功能
- 页面对象新增
listen
属性,弃用FlowViewer
- 删除
wait.set_targets()
删除 - 删除
wait.stop_listening()
方法 - 删除
wait.data_packets()
方法 DrissionPage.common
路径删除FlowViewer
- 用
listen.set_start()
和listen.stop()
启动和停止监听 - 用
listen.wait()
阻塞等待数据包 - 用
listen.steps()
同步获取监听结果 - 增加
listen.wait_silent()
等待所有请求完成(包含 targets 以外的)
- 页面对象新增