暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

聊聊Selenium 4

1673

Selenium 4
在去年的10.13日发布的第一版,现如今已经经历了快1年时间了,应该相对的功能已经基本完善了。

这里我们就来看看Selenium4
Selenium 3
有哪些不同的特性呢?

据官方网站上描述来看Selenium4
目前支持的5种编程语言,C#
,Ruby
,Java
,Python
,JS
Selenium 4在去年的10.13日发布的第一版,现如今已经经历了快1年时间了,应该相对的功能已经基本完善了。

这里我们就来看看Selenium4
Selenium 3
有哪些不同的特性呢?

据官方网站上描述来看Selenium4目前支持的5种编程语言,C#,Ruby,Java,Python,JShttps://www.selenium.dev/downloads/

目前最新的版本为4.4

教程文档在这里:https://www.selenium.dev/selenium/docs/api/py/index.html

安装

使用PIP
进行安装下Selenium 4
注意的是Selenium 4
以上版本需要更高的Python
版本支持至少要3.7
以上

pip3 install selenium

复制

你也可以根据下面方式下载指定的版本

pip3 install selenium==[版本号]
pip3 install selenium==4.4

复制

如何知道Selenium4
目前出来了哪些版本,可以到pypi
进行查看:https://pypi.org/

点击进入后找到 Release history

如果你已经安装过Selenium3
想升级Selenium4
,可按照下列命令来升级你的Selenium

pip3 install -U selenium

复制

如果安装失败或者依赖出现问题无法安装可以尝试升级你的pip

python -m pip install --upgrade pip

复制

验证是否升级或者安装成功

pip show selenium

复制

更多的pip
使用方法可自行百度,或后续专门开一篇给大家分享。

新的尝试

之前一直用的Selenium 3
作为企业级的WBE UI自动化测试工具,目前可以尝试从Selenium3
迁移到Selenium4
了。

Selenium 4
移除了对旧协议的支持,并在引擎盖下默认使用 W3C WebDriver
标准。对于大多数情况,此实施不会影响最终用户,主要的例外是Capabilities
Actions
类。

capabilities的更新

如果测试功能的结构不符合 W3C
,可能会导致会话无法启动,以下是 W3C WebDriver
标准功能列表:

Selenium API描述Python Selenium API
browserName为给定会话设置。如果远端没有安装指定的浏览器,会话创建会失败。
browserVersion代替version  可选项,用于设置远程可用的浏览器版本。例如,如果在仅安装了 80 的系统上要求 Chrome 版本 75,则会话创建将失败。browser_version
platformName代替platform这标识了远端的操作系统, 获取 platformName 将返回操作系统的名称.在基于云的供应者中, 设置 platformName 将在远程端设置操作系统.platform_name
acceptInsecureCerts检查在会话期间导航时 是否使用了过期的 (或) 无效的TLS Certificate .如果将功能设置为 false, 则页面浏览遇到任何域证书问题时, 将返回insecure certificate error . 如果设置为 true, 则浏览器将信任无效证书.默认情况下, 此功能将信任所有自签名证书. 设置后, acceptInsecureCerts 功能将在整个会话中生效.accept_insecure_certs
pageLoadStrategy当通过URL导航到新页面时, 默认情况下, WebDriver将暂缓完成导航方法 (例如, driver.navigate().get())直到文档就绪状态完成. 这 并非意味着该页面已完成加载, 特别是对于使用 JavaScript 在就绪状态返回完成后 动态加载内容单页应用程序的站点. 另请注意此行为不适用于单击元素或提交表单后出现的导航行为.如果由于下载对自动化不重要的资源(例如, 图像、css、js) 而需要很长时间才能加载页面, 您可以将默认参数normal更改为 eager 或 none 以加快会话加载速度. 此值适用于整个会话page_load_strategy
proxy代理服务器充当客户端和服务器之间的请求中介. 简述而言, 流量将通过代理服务器流向您请求的地址, 然后返回. 使用代理服务器用于Selenium的自动化脚本, 可能对以下方面有益:
1、捕获网络流
2、 模拟网站后端响应
3、 在复杂的网络拓扑结构或严格的公司限制/政策下访问目标站点.如果您在公司环境中, 并且浏览器无法连接到URL, 则最有可能是因为环境, 需要借助代理进行访问
proxy
timeoutsWebDriver session 具有一定的 session timeout 间隔, 在此间隔内, 用户可以控制执行脚本或从浏览器检索信息的行为.每个会话超时都配置有不同 timeouts 的组合timeouts
unhandledPromptBehavior指定当前会话 user prompt handler 的状态. 默认为 dismiss and notify stateunhandled_prompt_behavior

其他更多配置参数后续我进行整理后更新到我的博客上大家可以自行去学习,http://note.zhank.top:2020

Selenium 3.x以前的API

caps = {}
caps['browserName'] = 'chrome'
caps['platform'] = 'Windows 10'
caps['version'] = '92'
driver = webdriver.Remote(cloud_url, desired_capabilities=caps)

复制

Selenium 4 现在的API

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.browser_version = '104'
options.platform_name = 'Windows 10'
driver = webdriver.Remote(cloud_url, options=options)

复制

好了本章暂时到这里,下节继续更新本章节内容。

竟然已经聊到了自动化测试那么就来讲讲目前我的一些情况吧。目前我也正在写自己的自动化测试框架,该框架集成了自己实现的WebDriver
管理,可自动下载对应的浏览器驱动 可根据你当前电脑安装的浏览器如Chrome
浏览器的版本去查找对应的chromedriver
浏览器版本并进行下载到本地哦!!!

还有记得之前我分享了一个自己写的APP UI自动化库吗,也会集成到当前框架中后续稳定后进行开放下载并开源。该框架的特色为:自己实现了数据驱动,基于unittest
自己封装了一个自己的TestLoader
,更加详细美观的测试日志及debug
调试结果报告,实现了自己的自动化测试脚手架一键生成自己的自动化工程项目,参考 Django
框架的settings
原理实现了自动化测试框架的可插拔配置等等。。。

参考DJANGO
工程结构的自动化项目结构

debug
模式下的测试报告(用于本地测试脚本开发环境)

debug
(用于生产环境)


文章转载自测试前沿布道者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论