【问题标题】:Get Css Value Width in % - Selenium WebDriver- JUnit以 % 为单位获取 Css 值宽度 - Selenium WebDriver- JUnit
【发布时间】:2012-07-18 08:53:50
【问题描述】:

我有一个显示动态布局(由 extjs 生成)的网页,它应该占据 100% 的宽度。 我正在使用

WebElement element = driver.findElement(By.id("ext-gen4"));

String backgroundColor = element.getCssValue("width");

但目前它返回以像素为单位的宽度,并且 WebDriver 浏览器 (Firefox) 未以最大模式显示,因此该值甚至更小。 有什么办法可以得到 % 的值吗?我开始知道一些 GetCssProperty 类,但我无法正确使用它。有什么细节吗? 我正在将 Selenium WebDriver 2.23 与 JUnit 一起使用。

我想一定有办法最大化窗口。

【问题讨论】:

  • “我没有调查过。”你甚至承认这一点?
  • @Frank:很抱歉让你们感到困惑,但我的问题是关于找到 div 的宽度 Css 属性或 100% 或 60% 之类的任何百分比。目前 getCssValue 以像素为单位返回宽度。
  • 如果您的意思是that,请将其添加到您的问题中

标签: selenium webdriver selenium-webdriver junit4


【解决方案1】:

正如 Slanec 所说,您可以像这样最大化您的窗口

driver.manage().window().maximize()

比你可以创建一个方法

private float getWidthInRelationToWindow(WebElement element){
    return ((float)element.getSize().getWidth())/
                  this.drivy.manage().window().getSize().getWidth();
}

【讨论】:

  • 非常感谢。我对 Stack Overflow 的信任是有道理的。 :)
【解决方案2】:

使用这个来最大化:

driver.manage().window().maximize()

甚至全屏:

driver.findElement(By.tagName("html")).sendKeys(Keys.F11);

您无法获得像素以外的值 - 您必须自己计算百分比。请注意,您甚至不必使用 CSS 值,WebElement 上有一个 getSize() 方法,它也可用于获取 <html><body> 元素的大小,您甚至不需要需要最大化。

【讨论】:

  • 谢谢,但这不是我要问的问题。很抱歉让你们困惑了。我想在 % 中找到 div 的 width CSS 属性。目前它返回以像素为单位的值,这使我的测试在不同的系统或分辨率下无用。
  • 知道如何以百分比计算宽度吗?如果我错了,请纠正我 - 我得到 html 正文的大小,div 的大小并计算???为它写一个函数??
  • @MaitreyaDwaipayan 正如我所说,您需要自己计算。只需将宽度除以窗口(或包含元素)的宽度。使用 getCssValue("width")getSize().width 我给你的。
猜你喜欢
  • 2014-04-25
  • 2012-07-14
  • 2011-08-06
  • 1970-01-01
  • 2012-04-01
  • 2013-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多