public void addnew_date() { driver.findElement(By.cssSelector("input[type='submit']").click(); driver.manage().timeouts().pageLoadTimeout(40,TimeUnit.SECONDS); driver.manage().timeouts().implicitlyWait(40,TimeUnit.SECONDS); }
3 Réponses :
Veuillez utiliser ceci ci-dessous xPaths.
xPath's:
1. implicitwait et pageloadtimeout doit être utilisé à Le début du test, juste après la création de l'objet WebDriver, c'est-à-dire le pilote. p> quelque chose comme: p> // entrée [@ type = 'Soumettre'] code>
2. // entrée [contient (texte (), 'Ajouter une nouvelle date de début de début')] code> p>
Votre xpath n ° 1 est exactement la même chose que ce que OP utilise déjà ... Comment cela résoudra-t-il potentiellement le problème?
Jeffc: Essayez avec les XPaths donnés par moi et celui que OP a déjà écrit en question, voir lequel travaille réellement et ensuite parler.
Cela ne répond pas à ma question ... Vous avez changé exactement le même localisateur d'un sélecteur CSS à un XPath ... qui ne commencera pas comme par magie.
M. Jeffc essayez les deux et vérifiez lequel fonctionne et voyez la magie qui se produit .. c'est la façon dont il résout
Non, il n'y a pas de magie ici. Le premier ne fonctionnera pas parce que c'est la même chose que ce que Posted.
Vous devez induire WebDriverwait en conjonction avec EvoyableConditions comme ellementTobeclickable () et vous pouvez utiliser ce qui suit Stratégie de localisation :
xpath code>: p>
Il peut y avoir des chances que l'élément prévu soit présent mais non cliquant ou affichage, il jette donc ladite exception. Besoin d'identifier la cause réelle. Essayez la manière suivante pour déboguer:
Assurez-vous d'avoir l'élément unique avec le localisateur Effectuez la vérification de l'état actuel de l'élément E.g. p>
Si l'élément nécessite un certain temps pour être interagi, utilisez judicieusement les conditions d'attente de sélénium p>
implicitwait exemple: strong> p>
Exemple explicitwait: strong> p>
une alternative Vous pouvez essayer d'utiliser entrée [type = 'Soumettre'] code> Il peut y avoir quelques autres balises d'entrée avec type de soumission et qui peut être le premier et non intraitable . Donc, besoin de le rendre plus spécifique en ajoutant des éléments ou des attributs environnants
par exemple.
// entrée [TYPE = 'SOUMETURE'] [Contient (@ Valeur, 'Ajouter une nouvelle date')] Code> P> LI>
.Submit () code> car l'élément est le type de soumission ou peut utiliser
javascriptexecuter code> pour effectuer le clic p>