如何使用Webdriver Selenium获取“style”元素的值

时间:2013-08-26 20:50:02

标签: java selenium

我想检查样式元素的值是否大于特定值(即,是否> 666px?),但我无法获得该值。

以下是我要捕获的样式的HTML代码:

<pre><span id="da2c" style="left: 666px; top: 27px;"></pre>

我正在使用此代码尝试打印其值,但它不打印:

System.out.print(driver.findElement(By.id("da1c")).findElement(By.cssSelector("span")).getAttribute("style"));

我想要这样的事情:

if ((driver.findElement(By.id("da1c")).findElement(By.cssSelector("span")).getAttribute("style")).value> 700) {
  System.out.println("value exceeding")
}

3 个答案:

答案 0 :(得分:12)

您可以捕获Computed Css值,如下面的firebug屏幕截图所示:

enter image description here

像这样:

WebDriver web = new FirefoxDriver(;
String visibility = web.findElement(By.xpath("//your xpath")).getCssValue("display");

答案 1 :(得分:7)

如果您在该范围内执行.getAttribute("style"),您将收到一个字符串。

left: 666px; top: 27px;
您可以使用字符串操作来获取特定样式。

或者,您可以使用JavaScriptExecutor执行一些javascript魔术,并直接通过

获取left
String script = "var thing = window.document.getElementById('da2c'); 
                             window.document.defaultView.getComputedStyle(thing, null).getPropertyValue('left');";

然后从那里检查。

答案 2 :(得分:0)

driver.findElement(By.locator( yourLocator )).getAttribute( requiredAttribute )

它将返回String