J'essaie d'automatiser un site Web qui a différents systèmes métriques. L'application prend en charge à la fois le système métrique américain & système métrique britannique. Pour Ex: Dans le cas où j'ouvre l'application à partir d'un serveur américain, je vois les zones de texte pour Feet & pouces, & si j'ouvre la même application à partir d'un serveur différent, je vois les zones de texte dans Centimètres.Impossible de localiser l'élément - Automatiser un site Web dans différents paramètres régionaux à l'aide du pilote Web Selenium
J'ai écrit mon code afin qu'il vérifie d'abord si un élément textbox avec les pieds & pouces est présent, si elle est présente, alors il va de l'avant & entre des valeurs dans les zones de texte, d'autre si les pieds & pouces n'est pas , puis entrez les valeurs dans la zone de texte Centimètres.
/*
*
* This block is for the values in US version
*
*/
@FindBy(xpath = ".//*[@id='profile_height_large_value']")
WebElement CurrentHeightinFeet;
@FindBy(xpath = ".//*[@id='profile_height_small_value']")
WebElement CurrentHeightinInches;
/*
* This block is for the values in British version
*
*/
@FindBy(xpath = ".//*[@id='profile_height_display_value']")
WebElement CurrentHeightinCM;
Et mon code pour vérifier si c'est dans l'une ou l'autre version est comme ci-dessous.
public void userFitnessDetails() {
CurrentWeight.sendKeys("70");
if (CurrentHeightinFeet.isDisplayed()) {
CurrentHeightinFeet.clear();
CurrentHeightinFeet.sendKeys("5");
CurrentHeightinInches.clear();
CurrentHeightinInches.sendKeys("10");
}
CurrentHeightinCM.clear();
CurrentHeightinCM.sendKeys("170");
}
Si j'exécute le code ci-dessus je reçois une erreur - ECHEC: org.openqa.selenium.NoSuchElementException inscription: Impossible de trouver l'élément:
{"method":"xpath","selector":".//*[@id='profile_height_large_value']"}
Quelqu'un pourrait-il me guider pour corriger cette ?
Merci
J'ai changé mon code selon votre suggestion, cependant, je rencontre un problème dans ma vérification de l'état. – AdiBoy
@FindBy (xpath = ".//*[@id='profile_height_display_value ']")) \t WebElement CurrentHeightinCM; \t @FindAll (@FindBy (id = "profile_goal_weight_display_value")) \t WebElement GoalWeight; Aussi dans mon état vérifiez que j'utilise if (CurrentHeightinFeet.size()> 0 && CurrentHeightinInches.size()> 0) { \t \t \t CurrentHeightinFeet.clear(); \t \t \t CurrentHeightinFeet.sendKeys ("5"); \t \t \t CurrentHeightinInches.clear(); \t \t \t CurrentHeightinInches.sendKeys ("10"); \t \t} "La méthode sendKeys (String) n'est pas définie pour le type Liste" –
AdiBoy
Vous ne pouvez pas appeler sendKeys dans une liste contenant les WebElements. Ainsi, lorsque la taille de la liste est supérieure à 0, votre condition est remplie.L'élément que vous recherchez doit être extrait de la liste. Utilisez la méthode get (0) dans la liste pour obtenir WebElement. Et puis utilisez la méthode sendKeys. – Grasshopper