- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
elm.getSize().height; > elm.getAttribute("clientHeight") > elm.g-6ren">
以下是在 Protractor
中获取元素大小的 3 种不同方法:
它们之间有什么区别或者它们是等价的?
也可以通过execute_script()
获取height
值。
最佳答案
我可以试一试,如果答案不正确,请随意投反对票。 (我想放在评论里,但是太长了)
一般来说,所有方法都是 WebDriverJS 请求的包装器,它发生在一个非常复杂的链中并由 ProtractorJS 包装,即:
所以最终,一切都与浏览器的行为有关。可以通过浏览器引擎的一些知识来分析。比如 DOM 操作和视口(viewport)渲染(也许?)...
在挖掘 WebdriverIO API 文档后,这里是我对 3 种方法之间差异的总结。
elm.getSize().height
相当于使用 URL '/session/:sessionId/element/:id/size'
对 Selenium 的 GET 请求。首先它定位元素,然后获取元素的大小。通过浏览器行为来判断,它会与视口(viewport)和渲染相关。这需要渲染视口(viewport),然后进行像素计算(计算大小)。elm.getAttribute("clientHeight")
相当于使用 URL '/session/:sessionId/element/:id/attribute/:name' 对 Selenium 的 GET 请求
。找到元素,访问其属性并查找匹配的名称。此方法似乎不需要呈现任何内容,但 HTML 就足够了。 仅当存在高度属性时。elm.getCssValue("height")
相当于使用 URL '/session/:sessionId/element/:id/css/:propertyName' 对 Selenium 的 GET 请求
。同样,定位元素。然后访问 computed CSS 并寻找匹配的 CSS 属性。此方法不需要渲染视口(viewport)。因为计算的 CSS 将在视口(viewport)渲染之前可用。 但坚持下去 因为我们都知道 Selenium 与浏览器通信的状态并不总是呈现。
例如如果我们做一个重定向然后找到一个输入。 Selenium 需要等待输入可用的确切时间才能定位。而 3 种方法的性能将按此顺序(从快到慢)
elm.getAttribute("clientHeight")
elm.getCssValue("height")
elm.getSize().height
Continue of example 在上面的例子完成之后。一切都已呈现,结果我们可以请求任何东西而无需等待 DOM 操作周期。所以现在它是关于浏览器引擎的问题。哪种计算可以更快地完成将导致更好的性能。 (我可以说性能将与上面的顺序相同。因为它是关于浏览器需要多深才能找到 Selenium 的答案。但这对于结论来说太不清楚了)
P.S. 这都是我在查阅一些文档后的猜测。意见永远是受欢迎的:D
关于javascript - getSize().height 对比 getAttribute ("clientHeight") 对比 getCssValue ("height"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34541895/
我刚刚遇到了书中的示例教程,但我不太明白。 所以这是代码 import java.awt.Color; import java.awt.Font; import java.awt.Graphics;
我需要能够在事件函数中更改 JPanel 的大小,然后再次获取大小。似乎 JPanel 在函数调用完成之前不会更新。我怎样才能得到真正的尺寸? 这是一个 SSCCE: import java.awt.
当我实现时 WindowManager wm = ((WindowManager)context.getSystemService(context.WINDOW_SERVICE)); Display
我有麻烦了。我想知道如何解决它大约两个小时,但我仍然一无所知。你们能帮我吗?我再次编写了这段代码,但它没有改变任何东西,仍然不知道我错在哪里。 public class Historia { publ
我正在尝试从导出函数的通用 js 文件调用 Image.getSize,但出现错误 Cannot read property 'getSize' of undefined 似乎图像未定义。我如何定义它
为了学习我自己的 Direct2D,我正在关注 this example来自 MSDN。 但是我有一个问题。调用 D2D1_SIZE_F rtSize = m_pRenderTarget->GetSi
我有以下代码来查找屏幕的大小: WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
最简单地说,我试图使用组件的宽度来设置其父容器的大小。但是,为组件返回的宽度偏移了大约 4 个像素。 更多详情:我有一个对话框,其中的子面板在中间水平分布。对话框应始终与此子面板列表一样宽,并在列表太
我有一个有趣的情况,我间歇性地从调用 JLabel 的方法 getSize() 得到负值。我想调整 JLabel 的大小以获取尽可能大的空间,但我经常把它倒过来,就像在 this question 中
本文整理了Java中org.bukkit.WorldBorder.getSize()方法的一些代码示例,展示了WorldBorder.getSize()的具体用法。这些代码示例主要来源于Github/
本文整理了Java中android.webkit.WebBackForwardList.getSize()方法的一些代码示例,展示了WebBackForwardList.getSize()的具体用法。
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我正在尝试计算等宽字体(我希望保持一致)中字形的宽度和高度,但是 ImageFont.getsize()给定不同的单字符串返回不同的值: >>> from PIL import ImageFont >
我想使用 Image.getSize ( https://facebook.github.io/react-native/docs/image.html ) 来获取图像的大小,但第一个参数要求图像源位
List myObjs = myThreads[threadIndex].getMyObjList(); int initialSize = Collections.synchronizedList(
有没有办法判断 getSize() 是否包含状态栏的高度?从对几部不同手机的测试来看,它似乎在某些手机上有效,但在其他手机上无效,并且在尝试使布局中的所有内容正确对齐时令人沮丧。 在这个问题上花了一周
这是我第一次尝试使用 BufferStrategy,非常感谢您提供一些提示。 1) 为什么在下面的代码中,getSize() 在调整窗口大小之前返回 0 的尺寸?如何立即检测窗口的大小? 2) 为什么
Java zipEntry.getSize() 返回实际文件的大小,有时返回 -1(尽管文件大小大于 0)。 Java API 文档说“返回条目数据的未压缩大小,如果不知道则返回 -1。” 不确定在什
我使用以下两种方法为.ttf 字体文件生成文本预览图像 PIL方法: def make_preview(text, fontfile, imagefile, fontsize=30): try
def size_of_dir(dirname): print("Size of directory: ") print(os.path.getsize(dirname)) 是有问题的
我是一名优秀的程序员,十分优秀!