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

Soh*_*oof 8 java selenium

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

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

<pre><span id="da2c" style="left: 666px; top: 27px;"></pre>
Run Code Online (Sandbox Code Playgroud)

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

System.out.print(driver.findElement(By.id("da1c")).findElement(By.cssSelector("span")).getAttribute("style"));
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

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

Ani*_*udh 15

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

在此输入图像描述

像这样:

WebDriver web = new FirefoxDriver(;
String visibility = web.findElement(By.xpath("//your xpath")).getCssValue("display");
Run Code Online (Sandbox Code Playgroud)


dda*_*son 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');";
Run Code Online (Sandbox Code Playgroud)

然后从那里检查它.