C'est assez frustrant. Partout où je regarde que les gens continuent à me dire d'utiliser explicite, implicite et fluide. Ces attentes le font, vous pouvez donc faire une pause en fonction des éléments. Cependant, la convenir aux outils et aux options de la suppression des États-Unis et de l'enlèvement ne sont pas une bonne idée. Dans mon cornichon spécifique actuel, j'ai un bouton conçu pour disparaître si quelqu'un clique dessus trop rapidement. Cependant, il est également conçu pour se présenter immédiatement. Vous devez donc attendre jusqu'à ce qu'il apparaisse, puis attendez suffisamment de temps pour réussir, puis cliquez sur le bouton. Avec les suggestions, je suis donné qu'il est impossible. Un statique pause em> ou dormir em> doit être utilisé dans ce cas. Pour une raison quelconque, je ne peux même pas utiliser le sommeil de fil car il semble que cela ait été obsolète en Java 8 lui-même ou quelque chose. P>
3 Réponses :
attente implicite: attente explicite: p>
Quelle est la source qui vous fait penser que Java.Lang.thread serait obsolète? P>
Donc, même dans le Java 11 docs Il n'est pas obsolète. P>
Donc, si vous voulez l'utiliser, n'hésitez pas. : -) p>
Je n'arrive pas à faire que la commande n'arrête pas d'erreurs, peu importe les importations que j'utilise.
Veuillez afficher les importations que vous utilisez et les messages d'erreur correspondants et avertissements d'amortissement.
éventuellement à travers les termes statiques attendez em> et Static Pause em> vous vouliez dire Cependant, tout en exécutant vos tests em> à travers selenium em> induisant Sleep em> ne serait pas une solution élégante pour résoudre le problème comme induisant Si vous devez induire waits em> est un bon moyen de commencer. Vous pouvez trouver une discussion détaillée dans Utilisation d'une attente implicite à Selenium . Cependant, comme les applications Web actuelles EM> sont construites via JavaScript , angulaire , réactjs , etc. Explicit attend forte> serait la voie à suivre. p>
Ainsi, avancez-vous, vous pouvez faire une transition vers Explicite attend A >. Vous pouvez trouver une discussion détaillée dans Remplacer l'attente implicite avec attente explicite (selenium webdiver & java) . p>
À ce stade, implémenter Une attente fluide sera beaucoup plus facile et vous trouverez une discussion détaillée dans implicite vs explicite contre fluent attend . P> thread.sleep () code>
qui est toujours utile à bien des égards. P>
Thread.sleep (1000); code> dégradra l'ensemble des performances globales de l'exécution des tests forts>. Vous pouvez trouver une discussion détaillée dans sélénium a besoin d'un sommeil avant d'aller à la page suivante . p>
Utilisation de thread.sleep () Code> Pour attendre des éléments, etc. n'est pas une bonne pratique, mais si vous devez faire du temps quelque chose de spécifique sur la page en tant que OP, c'est bon à utiliser. L'utilisation des attentes implicites n'est pas une meilleure pratique par les contributeurs de sélénium, comme je l'ai déjà mentionné. Les attentes explicites et les attentes fluides sont fondamentalement les mêmes, les attentes explicites ne sont que des attentes préemballées et les deux sont des "meilleures pratiques".
+1 N'utilisez jamais d'attentes implicites, utilisez toujours des éléments explicites (les attentes explicites sont construites sur des attentes fluides, je suis d'accord qu'ils sont la même chose à toutes fins utiles. Une attente fluide n'est qu'une attente explicite avec quelques options de configuration supplémentaires)
Quelque chose change dans le code HTML entre l'apparence du bouton et le bouton étant éligible pour cliquer? Et pourquoi pensez-vous que
thrad.sleep () code> est obsolète en Java 8?
Je suggérerais une attente explicite d'attendre que le bouton apparaisse, puis un thread.sleep pour attendre la quantité minimale nécessaire pour vous assurer que celle-ci n'a pas été cliquée trop rapidement et ne disparaît pas dans ce scénario spécifique.
Aussi java 8 docs pour thread.sleep (il n'est pas obsolète) docs.oracle.com/javase/8/docs/api/java/lang/... serait bon d'avoir plus de détails sur l'erreur que vous voyez, pour vous aider avec le fil. Dormir une partie du problème