2009-09-08 20 views
0

J'ai la ligne suivante qui fonctionne pour FirefoxQuelle est la syntaxe pour vérifier élément présent en utilisant le style dans IE

assertTrue(!selenium.isElementPresent("//input[@name=\""+chosen.getField().getName()+"\" and contains(@style, \"color: rgb(255, 0, 0);\")]")); 

Mais échoue dans IE. Lorsque j'inspecte le champ dans IE, je vois le style de couleur représenté en hexadécimal.

Comment représenteriez-vous la ligne ci-dessus pour travailler sur IE?

+0

255,0,0 en hexadécimal est 0xFF0000 –

Répondre

1

Le principal problème avec les attributs de style et IE est qu'il les interprète en majuscules, quelle que soit la source html. Nous avons recensé ceci dans: http://seleniumhq.org/docs/05_selenium_rc.html#ie-and-style-attributes

Alors, pour ce localisateur, vous devriez commencer par utiliser:

assertTrue(!selenium.isElementPresent("//input[@name=\""+chosen.getField().getName()+"\" and contains(@style, \"COLOR: rgb(255, 0, 0);\")]")); 

Dans le cas où la couleur ne correspond pas, vous pouvez créer une structure try - catch, où vous prétendez pour l'entrée, si elle échoue, vous l'attrapez et l'affirment pour la même entrée en utilisant UPPERCASE (de cette façon fonctionnera dans IE et le reste des navigateurs ...

Dans le cas d'IE la couleur n'est pas interprétée façon, vous pouvez ajouter la façon IE dans le locator avec des majuscules dans côté la phrase catch. Quoi qu'il en soit, ce terrible problème serait corrigé si les devs remplaçaient ce style statique en ajoutant une classe à l'entrée désirée, puis en implémentant le style en utilisant le CSS standard.

Questions connexes