📒 v1.5-v2.x
v1.5 至 v2.x 版本,基于 selenium 控制浏览器,用作者自制的功能收发数据包。
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()不再检测是否拖拽成功,改成返回NoneDriverOptions对象从父类继承的方法也支持链式操作- 其它优化和问题修复
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_beforeDriverElement的input()增加timeout参数DriverElement的clear()增加insure_clear参数- 优化
DriverElement的submit()方法 DriverPage增加active_ele属性,获取焦点所在元素DriverPage的get_style_property()改名为style()DriverPage的hover()增加偏移量参数DriverPage的current_tab_num改名为current_tab_indexDriverPage的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属性 - 各种优化