es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo convertir un objeto de tipo String “rgba(105, 54, 221, 1)” a Color en Java-Selenium?

Después de obtener el valor de CSS del color de un WebElement utilizando getCssValue(), obtengo una cadena con el siguiente formato: “rgba(105, 54, 221, 1)”. Necesito convertirlo en un objeto del tipo Color para poder convertirlo a hexadecimal después, pero obtengo una NumberFormatException para la cadena de entrada: “rgba(105, 54, 221, 1)” al intentar utilizar el método Integer.parseInt.

Mi código es:

String updatedColorAsString = header.getCssValue(“color”); //la cadena resultante es “rgba(105, 54, 221, 1)”
Color updatedColor = new Color(Integer.parseInt(updatedColorAsString));

Soy nuevo en Java-Selenium y no tengo idea de cómo trabajar con esa cadena para convertirla correctamente en un Color RGBA, agradecería mucho cualquier ayuda en esto 😀

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para convertir la representación String del color a un objeto Color, puedes utilizar el siguiente código:

    String updatedColorAsString = header.getCssValue("color"); // la cadena resultante es "rgba(105, 54, 221, 1)"
    String[] rgba = updatedColorAsString.replace("rgba(", "").replace(")", "").split(", ");
    int red = Integer.parseInt(rgba[0]);
    int green = Integer.parseInt(rgba[1]);
    int blue = Integer.parseInt(rgba[2]);
    Color updatedColor = new Color(red, green, blue);
    

    Explicación:

    • Primero, obtenemos la representación String del color utilizando el método getCssValue.
    • Luego, eliminamos las partes "rgba(" y ")" de la cadena utilizando el método replace.
    • A continuación, dividimos la cadena en un arreglo de Strings utilizando ", " como delimitador.
    • Finalmente, convertimos cada valor en el arreglo a un entero utilizando el método parseInt y los utilizamos para crear un nuevo objeto Color.

    Esto debería resolver el problema de NumberFormatException que estabas enfrentando.

Comments are closed.