Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样

这篇具有很好参考价值的文章主要介绍了Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

最近接触到 UI 测试,涉及到这样一个场景,改变页面大小,验证页面一个输入框默认提示符会有不同。例如:页面宽度设置成小于等于 1024,应该显示短的提示符,大于 1204 显示长的提示符。Case 在本地都是通过的,但是日常 Jenkins 运行在 Remote VM 上,尽然跟期望的不一致。1024 宽度尽然显示成长的提示符了。得出结论,在不同机型上执行测试,设置页面宽度一样,但是期望的结果居然不一致。本文就是为了解决这个疑惑的。

内容提要:

  1. 解秘 Selenium Window Size
  2. 像素,PPI 的概念
  3. 疑惑解决

解秘 Selenium Window Size

通常 UI Automation 会将 Selenium 底层的方法再封装一下,也许你是通过类似下面这种方式来实现设置大小的。

Driver.ResizeWindow(width, height);

其中 width,height 都是整型,会列举一些常用的显示器分辨率设置。显示器上这些分辨率设置分辨代表宽度和高度显示的像素个数。
Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样
那么 Selenium 底层这个 width 和 height 啥单位呢,我们继续进一步挖掘一下。

 public void ResizeWindow(int width, int height)
 {
     _driver.Manage().Window.Size = new Size(width, height);
 }

Window.Size 是 Size 结构
Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样
Size 的结构:
System.Drawing 提供对GDI+图形功能的访问权限。其中 width 和 height 就是代表像素个数。
Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样
Point 的结构:
Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样
所以通过 Selenium 设置页面大小跟显示器上设置的分辨率是一致的,都表示宽和高显示的像素个数。

像素,PPI 的概念

那么,像素个数和我们能感知到的宽度和高度有什么联系呢。我们需要了解一下几个概念。

像素

像素是图像元素的缩写,它是构成所有数字图像的最小单位。我们用100% 或更低的缩放级别查看图像是无法看到像素的。当把一个图片放大后,我们就可以看到一堆小方块。这些方块就是像素。
Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样

Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样

PPI

PPI (Pixels Per Inch) 是像素密度,屏幕上每单位长度内的像素数量:这个单位长度定义为"1英寸"。比如 1 英寸内有两个像素点,PPI 就是 2。1 英寸内有 10 个像素点,PPI 就是10. 因此PPI数值越高,即代表显示屏能够以越高的密度显示图像。当然,显示的密度越高,拟真度就越高,显示器的价格也就越贵.

参考知乎上一个图片解释了几个概念的联系。Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样

科普 2K 4K

我们经常听到影院分 2K, 4K 屏幕概念。

2K 分辨率指的是屏幕分辨率达到了一种级别,指屏幕横向像素达到 2000 以上。是国内数字影院的主流放映分辨率。2K 分辨率有多种类别,最常见的影院 2K 是指 2048×1152,其他的 2048×1536(QXGA)2560×1600(WQXGA),2560×1440(Quad HD) 也被成为不同注释的 2K。

4K 的名称得自其横向解析度约为 4000 像素(pixel),电影行业常见的 4K 分辨率包括 Full Aperture 4K(4096 x 3112)、Academy 4K(3656 × 2664)等多种标准。对于主流的家电设备厂商而言,他们更倾向于制造接近 4K 的 Quad Full HD(3840×2160)设备,因为这个分辨率标准的显示比例为 16:9,与消费者当前接受的观看比例比较接近。
Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样

疑惑解决

通常每个型号的 PPI 像素密度是固定的,所以一定数量的像素,不同 PPI,长度是不一样的,PPI 越低,长度就越长,反之长度越底。回到我们最初的问题,设置 1024 像素个数的宽度,因为本地的 PPI 要比远程的 PPI 高,所以远程的 VM 显示页面宽度会比本地显示的要宽。解决方案就是将设置的window size 宽度适当减少像素。将原来的 1024 改成 1000 就可以了。文章来源地址https://www.toymoban.com/news/detail-434291.html

到了这里,关于Selenium - 改变窗口大小,不同机型呈现的宽高长度会不一样的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js和jquery获取屏幕宽高以及加margin和padding等边距的宽高

    Javascript: JQuery div的宽高:

    2024年01月20日
    浏览(42)
  • 微信小程序 获取window或某一节点的宽高

    异步方法: 同步方法: 如果查询节点为自定义组件内容,则要使用 in() 方法 例如查找的节点为当前组件内容: wx.createSelectorQuery().in(this).select(\\\'#container\\\')

    2024年02月15日
    浏览(39)
  • Selenium教程__浏览器窗口大小(6)

    本文将介绍如何使用Selenium来获取和设置浏览器窗口的大小,以及一些实际应用场景。 学习本文内容将能够轻松地控制浏览器窗口的大小,从而更好地适应不同的屏幕分辨率和设备,并确保网页在各种窗口大小下都能够良好地展示。  -事必有法,然后有成-  最后祝大家早日

    2024年02月13日
    浏览(46)
  • web前端之若依项目窗口大小改变或侧边栏伸缩时echarts图表自适应、封装执行文件和模板文件、展开、折叠、ApacheECharts、KeepAlive、RouterView、deactivated

    如需完整代码请WX私聊: MJ682517 没有任何套路,直接发代码 在 vue 项目中,窗口大小不变(排除window的resize监听),侧边菜单栏折叠展开,导致右边内容区域宽度变化, echarts 图表不会自适应。常规解决办法的是使用window.addEventListener(“resize”)来监听窗口变化,但当前窗口大小并

    2024年02月01日
    浏览(46)
  • vue项目动态获取窗口以及元素宽高

    场景1:页面刚进来时,获取窗口的默认宽高以及某个元素(div)的默认宽高 场景2:当页面缩放时,自动获取窗口的宽高以及某个元素(div)的宽高  效果如下:  因为不喜欢看别人写那么多废话,只想直接看代码,因为我有很完善的注释

    2024年02月11日
    浏览(42)
  • 小程序获取窗口宽高和dom元素

    wx.getSystemInfoSync().windowWidth // 获取当前窗口的宽度 wx.getSystemInfoSync().windowHeight // 获取当前窗口的高度 wx.getSystemInfoSync().model // 获取当前采用的设备 wx.getSystemInfoSync().pixelRatio wx.getSystemInfoSync().language // 获取当前所采用的的语言 wx.getSystemInfoSync().version // 获取当前设备的版本 ==

    2024年02月15日
    浏览(46)
  • 【CSS】背景图定位问题适配不同机型

    需求 如图, 实现一个带有飘带的渐变背景 其中头像必须显示飘带凹下去那里 , 需要适配不同的机型, 一不下心容易错位 实现 因为飘带背景是版本迭代中更新的, 所以飘带和渐变背景实则两个div 飘带切图如下 , 圆形部分需要契合头像

    2024年02月13日
    浏览(37)
  • 微信小程序不同机型底部安全区域问题

    在微信小程序开发过程中,有些页面底部按钮是固定在底部的,还有如果是自定义tabbar也是需要固定在底部的,这里有两个问题: 不同机型的底部安全区域不同,如有些苹果手机底部有操作栏,这部分距离需要留出来否则会遮挡内容 如果底部有固定定位元素,可能会导致内

    2024年02月11日
    浏览(46)
  • 如何让ThinkPad机型实现双网卡同时连接不同的网络

    故障现象: ThinkPad机型,一般都会标配有线网卡和无线网卡,一般情况下,双网卡无法同时工作来连接不同的网络。 但有些用户常常会提出这样一个问题:“能否在两个网卡同时联网的情况下,使一个网卡连接某个网络,另一个网卡连接另一个不同的网络?” 原因分析: 其实

    2024年02月06日
    浏览(44)
  • 当图像宽高为奇数时,如何计算 I420 格式的uv分量大小

    I420 中 yuv 数据存放在3个 planes 中。 网上一般说 I420 数据大小为 width height 1.5 但是当 width 和 height 是奇数时,这个计算公式会有问题。 I420 中 u 和 v 的宽高分别为 y 的一半。 但是当不能整除时,是如何取整呢?向上还是向下,网上一般都没有细说。 今天遇到个问题,和这个相

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包