Le sélénium WebElement getCssValue couleur de fond déformé?
Je suis en utilisant Selenium Webdriver pour l'automatisation des tests fonctionnels sur un code javascript en fonction de l'application web.
Le code javascript (knockout.js) définit l'un de l'OPTION éléments pour SÉLECTIONNER les listes déroulantes pour une autre couleur #FFFFCC, qui est rgba(255, 255, 204, 1) (la lumière jaune) (vérifiée par firebug).
Mon code pour l'utilisation par le sélénium est comme suit:
Select select = new Select(driver.findElement(By.id("views"))); //get the select
List<WebElement> allOptions = select.getOptions(); //get all the options
for (WebElement option : allOptions) { //iterate over the options
if (option.getCssValue("background-color").compareToIgnoreCase("rgba(255, 255, 204, 1)") == 0) {
//do something
}
}
Mais que si l'instruction échoue toujours. Quand je fais un système..println() de la valeur de option.getCssValue("background-color")
il retourne "transparent" pour tous mes options éléments et 'rgba(51, 153, 255, 1)' pour mon option modifié élément, qui lorsqu'elle est convertie en hexadécimal #3399FF (de couleur bleue).
Pourquoi est-déclaration du sélénium la mauvaise valeur hexadécimale pour cet élément?
background-color
ou tout simplement de la color
de l'élémentLa couleur d'arrière-plan
OriginalL'auteur Husman | 2013-07-18
Vous devez vous connecter pour publier un commentaire.
J'ai une bonne théorie sur les causes de ce problème se produit, et il semble reproductible.
La couleur bleue est la couleur des éléments d'arrière-plan lors de la mise en évidence par une souris. Le sélénium semble chercher cette couleur à la place de la couleur du fond de l'option de liste déroulante.
Peut-être que je dois signaler que comme un bug ou non fonctionnalité pour les développeurs.
OriginalL'auteur Husman