在下面的代码中,我需要打印Hex format
中的color
。
- 第一个 * 打印语句以
RGB
显示值,即rgb(102,102,102)
。 - Second* 语句显示
Hex
中的值,即#666666
但是我在第二个print语句中手动输入了值102,102,102
。
有没有办法将我从第一个语句(Color)中得到的值传递到第二个print语句中并得到结果?
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Google {
public static void main(String[] args) throws Exception {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
String Color = driver.findElement(By.xpath("//div[@class='gb_e gb_f gb_g gb_xb']/a")).getCssValue("color");
System.out.println(Color);
String hex = String.format("#%02x%02x%02x", 102,102,102);
System.out.println(hex);
}
}
5条答案
按热度按时间wribegjk1#
我知道这是相当古老的,但你可以通过使用
org.openqa.selenium.support.Color
得到一个更简单的解决方案:它为您提供了一个单行解决方案,甚至在需要时添加前导零(以前的答案没有考虑到)
wz1wpwve2#
方法1:使用StringTokenizer:
方式二:
ztyzrc3y3#
首先引用Selenium的文档。
获取给定CSS属性的值。颜色值应该作为rgba字符串返回,因此,例如,如果“background-color”属性在HTML源代码中设置为“绿色”,则返回值将为“rgba(0,255,0,1)”。请注意,简写CSS属性(例如background,font,border,border-top,margin,margin-top,padding,padding-top,list-style,outline,pause,cue)不返回,根据DOM CSS 2规范-您应该直接访问longhand属性(例如:background-color)来访问所需的值。
那么这不是一个Selenium特定的问题,这只是一个关于如何将字符串
rgba(102,102,102)
解析为三个数字的一般编程问题。6ss1mwsb4#
代码工作,但只是一个小错字。color.fromString将是大写的C
dwbf0jvd5#
只要一个简单和甜蜜的代码将帮助你得到一个答案