Nel seguente codice ho bisogno di stampare il color
in Hex format
.getCssValue (Colore) in formato esadecimale in Selenium WebDriver
Prima riga L'istruzione di stampa sta mostrando il valore nel formato RGB
che corrisponde a rgb(102,102,102)
.
La Seconda dichiarazione sta mostrando il valore in Hex
che è #666666
Ma io sto entrando manualmente il valore nella seconda istruzione print, che è 102,102,102
.
C'è un modo per passare il valore che ho ottenuto dalla prima istruzione (Colore) nella seconda istruzione di stampa e ottenere il risultato?
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);
}
}
In "Way 2" state usando solo 'numeri [0]', quando credo che dovreste effettivamente usare 'numeri [0]', 'numeri [1]' e 'numeri [2]' –
Grazie Victor Moraes per evidenziare l'errore.Sì, dovrebbe essere numeri [0], numeri [1] e numeri [2]. Ho corretto di conseguenza. –
"Way 2": i valori esadecimali dovrebbero molto probabilmente essere riempiti con gli 0 iniziali. Sono qui perché un 'driver.getElement(). GetCssValue (" background-color ")' restituisce e valore rgba: rgba (198, 15, 19, 1). DevTools fornisce un valore esadecimale: # c60f13, il codice sopra riportato restituisce # c6f13. suggerire 'String hex = String.format (" #% 02x% 02x% 02x ", r, g, b);' – mancocapac