跳到主要内容

📒 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()不再检测是否拖拽成功,改成返回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()方法
  • DriverPageclose_current_tab()改为close_tabs(),可一次过关闭多个标签页
  • DriverPage添加run_async_script()
  • DriverPage添加timeouts属性
  • DriverPage添加set_timeouts()方法
  • DriverElement添加scroll_to()方法,可在元素内滑动滚动条
  • DriverOptions添加set_page_load_strategy()方法
  • ini 文件增加page_load_strategyset_window_recttimeouts三个属性
  • 其它优化和问题修复

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 下查找元素可用完全版的定位语法。
  • DriverElementafterbefore属性改为pseudo_afterpseudo_before
  • DriverElementinput()增加timeout参数
  • DriverElementclear()增加insure_clear参数
  • 优化DriverElementsubmit()方法
  • DriverPage增加active_ele属性,获取焦点所在元素
  • DriverPageget_style_property()改名为style()
  • DriverPagehover()增加偏移量参数
  • DriverPagecurrent_tab_num改名为current_tab_index
  • DriverPageto_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_timesretry_interval属性,可统一指定重连次数
  • 元素对象增加raw_text属性
  • 元素查找字符串支持极简模式,用x表示xpathc表示csst表示tagtx表示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时的问题
  • MixPageclose_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()方法可获取文本节点
  • 可获取伪元素属性及文本
  • 元素对象增加linkinner_html属性
  • 各种优化