328 Star 3.9K Fork 801

GVPg1879 / DrissionPage

2024-01-16 18:26
5397123 g1879 1578986013 g1879

在3.2基础上加入大量功能,重构底层。

最后提交信息为: !35v4.0.2
2023-11-30 15:02
5397123 g1879 1578986013 g1879
  • 浏览器最小化时也能响应模拟操作
  • 接管浏览器无须'--remote-allow-origins=*'参数
  • tabs属性忽略隐私声明
  • 修复 8x 版浏览器选择下拉列表时报错问题
  • 修复某些情况下下拉框不触发联动的问题
  • 修复配置文件损坏时出现的问题
  • 修复get()方法url参数含某些特殊字符时连接失败的问题
最后提交信息为: !273.2.35
2023-09-22 18:12
5397123 g1879 1578986013 g1879
  • 无界面 Linux 自动进入无头模式
  • 添加 MAC 和 Linux 系统默认浏览器路径
  • 修复元素截图时可能出现的问题
  • 修复quit()没有正确等待浏览器进程结束问题
  • 屏蔽 MAC 和 Linux 系统多余的提示
  • 修复set.timeouts()没有正确设置timeout属性的问题
  • 修复关闭 tab 时小几率报错问题
  • 修复某些情况下元素size不准确问题
最后提交信息为: !24v3.2.33
2023-06-28 14:45
5397123 g1879 1578986013 g1879

修复一些问题

最后提交信息为: 3.2.30
2023-05-02 19:47
5397123 g1879 1578986013 g1879
  • 优化抓取数据包逻辑,wait.data_packets()删除targets参数
  • 动作链type()可接收list和tuple
  • 浏览器页面对象现在可用 xpath 直接返回文本或注释
  • 恢复对 python 3.6 支持
  • 完全删除之前声明废弃的方法和属性
  • 增加auto_port模式可使用端口范围
  • 修复select.by_index()报错
  • 修复get_session_storage()报错
  • 修复下拉框没有触发onChange问题
  • 修复<iframe>中元素使用s_ele()时出现的问题
  • 微调run_js()逻辑
最后提交信息为: 3.2.27
2023-02-18 09:35
5397123 g1879 1578986013 g1879
  • 增强下载功能

    • ChromiumPage也可以使用内置下载器下载文件

    • 可拦截并接管浏览器下载任务

    • 新增download_set属性对下载参数进行设置

    • 增加wait_download_begin()方法

  • 改进浏览器启动设置

    • 优化 ini 文件结构

    • 新增ChromiumOptions取代DriverOptions

    • 新增自动分配端口功能

    • 优化SessionOptions设计,增加一系列设置参数的方法

    • 改进对用户配置文件的设置

  • 对部分代码进行重构

    • 优化页面对象启动逻辑

    • 优化配置类逻辑

    • 优化项目结构

  • 细节

    • 上传文件时支持传入相对路径
  • 一系列优化和问题修复

2023-01-06 11:28
5397123 g1879 1578986013 g1879

推出WebPage,重新开发底层逻辑,摆脱对 selenium 的依赖,增强了功能,提升了运行效率。支持 chromium 内核的浏览器(如 chrome 和 edge)。比MixPage有以下优点:

  • 无 webdriver 特征,不会被网站识别
  • 无需为不同版本的浏览器下载不同的驱动
  • 运行速度更快
  • 可以跨 iframe 查找元素,无需切入切出
  • 把 iframe 看作普通元素,获取后可直接在其中查找元素,逻辑更清晰
  • 可以同时操作浏览器中的多个标签页,即使标签页为非激活状态
  • 可以直接读取浏览器缓存来保持图片,无需用 GUI 点击保存
  • 可以对整个网页截图,包括视口外的部分(90以上版本浏览器支持)

其它更新:

  • 增加ChromiumTabChromiumFrame类用于处理 tab 和 frame 元素
  • 新增与WebPage配合的动作链接ActionChains
  • 浏览器启动配置实现对插件的支持
  • 浏览器启动配置实现对experimental_optionsprefs属性支持
  • 用存根文件取代类型注解
  • 其它优化和问题修复
最后提交信息为: 修改文档
2022-09-08 15:05
5397123 g1879 1578986013 g1879
  • 页面对象和元素对象的screenshot()方法增加bytes参数,可以字节形式返回图片
  • input()方法接收非文本参数时自动转成文本输入
2022-06-30 11:06
5397123 g1879 1578986013 g1879
  • DriverPage
    • 增加get_session_storage()get_local_storage()set_session_storage()set_local_storage()clean_cache()方法
    • run_cdp()cmd_args参数改为**cmd_args
  • 关闭 driver 时会主动关闭 chromedriver.exe 的进程
  • 优化关闭浏览器进程逻辑
2022-03-20 23:28
5397123 g1879 1578986013 g1879
  • 列表元素 select()、deselect()等方法添加timeout参数,可等待列表元素加载
  • 优化了对消息提示框的处理
  • drag() 和 drag_to() 不再检测是否拖拽成功,改成返回 None
  • DriverOptions 对象从父类继承的方法也支持链式操作
  • 其它优化和问题修复
最后提交信息为: 2.5.7
2022-01-30 12:52
5397123 g1879 1578986013 g1879
  • 用 DownloadKit 库替代原来的 download() 方法,支持多线程并发
  • DriverPage 增加 set_ua_to_tab() 方法
  • 删除 scroll_to() 方法(用 scroll 属性替代)
  • 其它优化和问题修复
最后提交信息为: 2.5.0
2022-01-19 21:17
5397123 g1879 1578986013 g1879
  • wait_ele()、to_frame()、scroll_to()改用类的方式,避免使用字符串方式选择功能
  • scroll_to()方法改为scroll属性
  • 滚动页面或元素增加to_location()方式
  • Select类优化,修改使用方式
最后提交信息为: 修改文档
2022-01-12 16:35
5397123 g1879 1578986013 g1879
  • 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 三个属性
  • 其它优化和问题修复
最后提交信息为: 2.3.0
2022-01-04 11:03
5397123 g1879 1578986013 g1879
  • 新增基于页面布局的相对定位方法 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 端口启动浏览器
  • 其它优化和问题修复
最后提交信息为: 微调
2021-12-02 20:25
5397123 g1879 1578986013 g1879
  • 支持从DriverElement或html文本生成SessionElement,可把d模式的页面信息爬取速度提高几个数量级(使用新增的s_ele()和s_eles()方法)
  • 支持随时隐藏和显示浏览器进程窗口(只支持Windows系统)
  • s模式和d模式使用相同的提取文本逻辑,d模式提取文本效率大增
  • input()能自动检测以确保输入成功
  • click()支持失败后不断重试,可用于确保点击成功及等待页面遮罩层消失
  • 对linux和mac系统路径问题做了修复
  • download()能更准确地获取文件名
  • 其它稳定性和效率上的优化
最后提交信息为: 2.0.0
2021-11-11 10:19
5397123 g1879 1578986013 g1879
  • SessionOptions增加set_headers()
  • 调整MixPage初始化参数
  • click()增加timeout参数,修改逻辑为在超时时间内不断重试点击。可用于监视遮罩层是否消失
  • 处理process_alert()增加timeout参数
  • 其他优化和问题修复
2021-08-30 13:50
5397123 g1879 1578986013 g1879

DrissionElement

  • set_property属性改名为set_prop
  • 增加prop()
  • clear()改用selenium原生
  • 增加r_click()和r_click_at()
  • input()返回None
  • 增加input_txt()

DriverPage

  • wait属性改名为wait_object

其它程序优化

最后提交信息为: 1.11.0
2021-04-14 10:06
5397123 g1879 1578986013 g1879
  • 优化启动浏览器的逻辑
  • 用debug模式启动时可读取启动参数
  • 完善select标签处理功能
  • MixPage类的to_iframe()改名为to_frame()
  • MixPage类的scroll_to()增加'half'方式,滚动半页
  • Drission类增加kill_browser()方法
最后提交信息为: 1.10.0
Python
1
https://gitee.com/g1879/DrissionPage.git
git@gitee.com:g1879/DrissionPage.git
g1879
DrissionPage
DrissionPage

搜索帮助