| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> Selenium 4.0 Intro -> 正文阅读 |
|
[开发测试]Selenium 4.0 Intro |
Overview
Selenium 4 不仅对前代版本做了稳定提升,还带来了大量令人兴奋的新功能,这能让我们的测试编写起来更有趣,也能在运行时更加稳定。 AuthenticationSelenium 4.0 的一个重要更新是 身份验证 能力。 在过去,我们一直能使用 Selenium 处理一些「登录」请求,譬如通过定位特征元素(如 上述情况将在 Selenium 4.0 时代有所改观。我们可以通过调用 如下 demo 演示了新方法的功能实现:
当我们完成 这个特性目前是基于 Selenium 4 的 CDP (Chrome DevTools Protocol)实现的,意味着此功能仅能运行在支持这个协议的浏览器上。值得一提的是,Selenium 旗下产品 WebDriver Bidi 的允许开发者在不支持 CDP 的浏览器使用这项功能,好消息是这个项目还未完整孵化出来,我们可以期待一下。 Relative Locators相对定位器(Relative Locators)是一种基于「自然语言术语」的元素定位解决方案,开发者可通过诸如「上方」「下方」「左侧」「右边」等描述捕获那些「看得见但摸不着」的标记元素,这种描述可以适应 DOM 的变化。 这种方法背后的概念是允许开发者根据在页面上描述元素的方式来查找元素。更自然的说法是「find the element that is below the image」,而不是「find the INPUT inside the DIV with the "id " of “main”」 。通常,我们可以将此方案视为一种基于视觉的元素定位方法。 这套方法论最初由 Sahi 提出,这是一个极其强大的基于 低代码 实现的自动化测试平台,感兴趣的朋友可以了解以下。 我们以 Above 如下图是一个常见的登录页面,我们像找到位于密码字段上方的电子邮件地址字段。为此,我们通过其 id 找到密码字段,然后使用 relative locators 定位器捕获电子邮件字段。 ![]()
Below 反过来,让我们定位密码字段,它位于电子邮件地址字段下方。
To the left Of 让我们考虑一下我们想要在「提交」按钮左侧找到元素的情况。
To the Right Of 现在我们将考虑相反的情况,我们希望找到「取消」按钮右侧的元素。
Near 上文「适应 DOM 的变化」从何而来?我觉得 回到话题,在这个案例中,我们可以通过先定位邮件标签,再通过寻找
Enhancement如果你使用 Firefox 或是其他基于 Chromium 的浏览器,Selenium 4 还提供了强大的增强特性。 除了上文介绍的 Authentication ,Selenium 4 还添加了 Network Interception(Are you an HTTP 418?)以及一些常见执行请求,如更加高效的「等待 DOM 变更」的方法,或是查看 Javascript 错误的方法等等。 值得一提的是,这些提升大都是基于现有 API 打磨的,意味着我们原先引用的函数方法无需改动,而我们只需升级版本 如 Selenium GridSelenium 重构了 Grid ,使其完全支持分布式,能够运行于 Kubernetes 等现代基础设施之上。 重构后的 Grid 可以管理本地机器上的 Docker 容器,提取诸如独立的 Firefox 服务器之类的镜像,这样我们的基础设施维护工作就会变得轻松一些。 最后, Grid 更加安全,也更加易于管理。Selenium 改进了 Grid 的UI,将其置于 GraphQL 模型上运行,任何人都可以自由查询并使用该模型来创建自己的可视化或 Grid 监视器。开发者可以使用 VNC 与正在运行的会话(session)进行交互,从而更好地了解到正在发生地事情。 Reference |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/11 21:21:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |