0
votes

Comment puis-je attendre pour l'élément mobile

Je voudrais attendre le mobilelement, je ne sais pas quelle est la bonne façon.

Utilisation de l'appui, de sélénium et de Java pour créer des tests d'automatisation, mais tout l'utilisation de l'émulateur et je dois parfois attendre un peu pour l'élément, je voudrais utiliser quelque chose ce que j'utilise dans la diffusion. Raison pour laquelle j'utilise la recherche par classe est en application il n'y a pas d'ID et je ne peux pas le changer. P>

public static MobileElement myButton(AndroidDriver driver, int index) {
    List<MobileElement> button = driver.findElements(By.className("android.widget.Button"));

    return  button.get(index);
}


3 commentaires

Jetez un coup d'œil à cette réponse: Stackoverflow.com/a/11738528/7450414


Merci mais dans mon cas, je veux attendre le mobileElement pas la diffusion :(


Pourquoi ne pouvez-vous pas changer votre code pour utiliser la diffusion de la diffusion?


3 Réponses :


0
votes

Vous pouvez mettre en œuvre une attente implicite forte>. Qui attend essentiellement une certaine quantité de temps avant de jeter une exception qu'il ne peut pas trouver l'élément sur la page.

 thread.sleep(1000);


1 commentaires

Bonjour, merci de votre réponse, mais dans mon cas, je ne veux pas définir WebDriver, je souhaite utiliser le pilote Android. Je ne teste pas l'application dans aucun navigateur, je teste une application mobile et tous les tests sont effectués là-bas. Utilisation de guichet automatique. Mais je veux changer pour attendre l'élément, etc.



0
votes

update

essayez d'utiliser visibilité de , comme ceci: xxx

30 30 30 30 30 en second.


2 commentaires

Merci pour votre réponse, si j'utilise ce code, je peux voir. La visibilité de la méthodeOpléchelement (WebElement ...) dans le type TYPE CONTSCONTIONS n'est pas applicable pour les arguments (liste ). Alors j'essayais avec quelque chose comme ça. nouveau webdiverwait (pilote, 30). JUNTIL (attenduConditions.VisibilitéOfallementsLocatedb y ((par) Enrollonboard)); Mais alors je peux ce java.util.arraylist ne peut pas être jeté à org.openqa.selenium.by :(


Merci beaucoup, le code est correct maintenant, mais je ne pense pas, c'est réellement attendre 2 minutes "New WebDriverwait (pilote, 120)" mais est échoué sans attendre 2 minutes



0
votes

Bien sûr de pouvoir, changez simplement cette ligne: xxx

à cela en supposant webDriverwait utilisation de classe pour attente explicite implémentation: xxx

à l'avenir, vous pouvez envisager de mettre en œuvre Modèle d'objet de la page modèle de conception et utilisez @ AndroidFindBy Annotation, Découvrez https://github.com/appium/java-client/blob/master/docs/page-Object.md par exemple code.


0 commentaires