selenium 4.17正式发布,这几项更新值得关注

您所在的位置:网站首页 oppoa77最新版本是多少 selenium 4.17正式发布,这几项更新值得关注

selenium 4.17正式发布,这几项更新值得关注

2024-07-17 09:01| 来源: 网络整理| 查看: 265

(全文约1400字,阅读约需4分钟,首发于公众号:测试开发研习社,欢迎关注)

两天前,selenium 正式发布了新版本 4.17,其中 python 版本的变化有更新更新值得关注

1. CDP 支持范围调整到 >118

CDP(Chrome DevTools Protocol)支持对 Chrome 进行深度的检测、检查、设置、调试和分析,能够完成 webdriver 协议和 JavaScript 代码无法实现的复杂功能。

selenium 4.17 不再支持 chrome 118 以下的版本,

当然,基于 webdriver 协议对浏览器进行自动化控制还是正常使用的

2. 为页面加载策略创建枚举类

页面加载策略(pageLoadStrategy)和元素定位策略(Element Locator strategies)、等待策略(Waiting Strategies),

并称 Selenium 中的三大策略。通过对策略的调整,可以提高 Web 自动化的执行速度,减少操作失败。

其中页面加载策略有 3 种选项:

none:完成 HTML 下载后返回

eager:完成 HTML 渲染后返回

normal:完成资源(图片、CSS、JS)渲染后返回

页面加载策略的默认值为 normal,也就是等整个页面的各项资源都下载渲染后,开始执行下一行代码。

例如,腾讯网首页引用了大量资源文件,默认情况下定位一个新闻标题,耗时需要 5 秒多

图片

在调整了页面加载策略后,会放弃等待资源文件,马上执行下一行代码

(这时元素可能还没渲染出来)

再调整等待策略,在定位失败时不断重试,确保定位成功

这样,仅需 1 秒多即可完成定位

图片

注意这里的代码写法:

from selenium import webdriver from webdriver_helper import get_webdriver options = webdriver.ChromeOptions() # 实例化options options.page_load_strategy = 'none' # 修改页面加载策略,提前返回 driver = get_webdriver(options=options) # 起点浏览器时传递options

修改定位策略是给 options 的 page_load_strategy 赋值字符串,字符串难免会记错、写错。

本次Selenium 4.17 的更新中,创建了枚举类 PageLoadStrategy,在 IDE 中可以体验代码提示、自动补全,避免了记错写错的问题

图片

注意:在单页应用中,往往并不适合调整页面加载策略

3. 提高浏览器驱动的启动速度

简单来说,优化了 sleep 代码,节省了约 0.5 秒,

接下来看看优化的细节。

在之前的版本中,为了确保浏览器驱动启动成功有这样的处理逻辑:

启动子进程后,休眠 0.5 秒,然后判断是否启动成功

如果失败,重复第一步

如果失败 60 次,放弃启动,进行报错

有个哥们经过实验发现:顺利的情况下,浏览器驱动启动速度其实极快!

于是调整了休眠重试的机制:

图片

不再是每次重试,都等待固定的 0.5 秒

而是第一次等待 0.01,以后每次重试增加 0.05,直到 0.5 一次

这哥们还补充了个测试用例,优化之后正常情况下启动时间



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3