Selenium WebDriver 获取边框颜色 [英] Selenium WebDriver get border color
问题描述
大家好,我正在尝试使用 getCssValue 方法获取 extjs 4.2 表单控件文本字段的边框颜色.但我无法获取它.它让我空白.下面是我的代码片段,您可以按原样尝试.
Hi all i am trying to get border color of an extjs 4.2 form control text field using getCssValue method. But i am not able to fetch it. it is returning me blank. Below is my code snippet u can try this as is.
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class TestClass
{
public static void main(String[] args) throws InterruptedException
{
WebDriver driver=new FirefoxDriver();
Thread.sleep(2000);
driver.get("http://docs.sencha.com/extjs/4.2.1/extjs-build/examples/form/dynamic.html");
Thread.sleep(2000);
WebElement element=driver.findElement(By.xpath(".//input[@name='first']"));
Thread.sleep(2000);
element.sendKeys("");
element.sendKeys(Keys.TAB);
Thread.sleep(2000);
System.out.println("'"+element.getCssValue("border-color")+"'");
}
}
Webdriver 2.33 版(Java 绑定)
Webdriver version 2.33 (Java binding)
FF 22
推荐答案
如何在 Computed 中获取边框颜色或其他 css 值,您可以获得所有值:
How to get border color or other css values look in Computed there are all values that you can get:
getCssValue("border-bottom-color")
返回 rgba(209, 219, 223, 1) 并需要清除它(这适用于 rgba 和 rgb):
returns rgba(209, 219, 223, 1) and need to clear it (this will work for rgba and rgb):
String rgb[] = driver.findElement(By.name("login[email]")).getCssValue("border-bottom-color").replaceAll("(rgba)|(rgb)|(\()|(\s)|(\))","").split(",");
现在我们的 rgb 在数组中使用这个方法解析它
Now our rgb is in array using this method to parse it
String hex = String.format("#%s%s%s", toBrowserHexValue(Integer.parseInt(rgb[0])), toBrowserHexValue(Integer.parseInt(rgb[1])), toBrowserHexValue(Integer.parseInt(rgb[2])));
private static String toBrowserHexValue(int number) {
StringBuilder builder = new StringBuilder(Integer.toHexString(number & 0xff));
while (builder.length() < 2) {
builder.append("0");
}
return builder.toString().toUpperCase();
}
从这个 rgba(209, 219, 223, 1) 我们得到了这个 #D1DBDF
From this rgba(209, 219, 223, 1) we got this #D1DBDF
这篇关于Selenium WebDriver 获取边框颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!