gpt4 book ai didi

java - Selenium WebDriver 中十六进制格式的 getCssValue(颜色)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:27:58 25 4
gpt4 key购买 nike

在下面的代码中,我需要以十六进制格式打印颜色

第一个 打印语句以 RGB 格式显示值,即 rgb(102,102,102)

第二个 语句在 Hex 中显示值,即 #666666

但我手动将值输入到第二个打印语句中,即 102,102,102

有什么方法可以将我从第一个语句(颜色)得到的值传递到第二个打印语句并得到结果吗?

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);
}
}

最佳答案

我知道这很旧,但您可以使用 org.openqa.selenium.support.Color 获得更简单的解决方案:

import org.openqa.selenium.support.Color;
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 = Color.fromString(color).asHex();
System.out.println(hex);

它为您提供单行解决方案,甚至在需要时添加前导零(之前的答案没有考虑到这一点)

关于java - Selenium WebDriver 中十六进制格式的 getCssValue(颜色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com