0

J'essaye d'écrire quelques tests d'instrumentation sur une application Android qui a un webview avec un peu de contenu dans la balise href. Vous trouverez ci-dessous l'extrait de la page Web suivante:Test Expresso sur webview avec href

<table width="90%" class="welcome"> 
    <tr> 
     <td><a href="/demo/TransactionFree"><img 
       src="/demo/pen.png" width="80" /><br /></a><b> Text <br></td> 

     <td><a href="/demo/Transaction"><img 
       src="/portaldemo/pen.png" width="80" /><br /></a>Text Twor</b><br> <br></td> 

</table> 

Je veux cliquer sur le premier élément. J'ai donc écrit le test suivant en Expresso.

onWebView().withElement(findElement(Locator.CSS_SELECTOR, "a[href='*TransactionFree']")).perform(DriverAtoms.webClick()); 

Il fonctionne sur les nouveaux téléphones avec Android, mais échoue sur les téléphones bas de gamme comme Samsung S3. Il ne parvient pas à trouver l'élément.

Comment puis-je résoudre ce problème?

Répondre

0

Enfin compris comment faire. Ouvrez la page HTML dans le navigateur Chrome -> faites un clic droit sur l'élément particulier à cliquer sur -> inspecter élément -> copier XPath

Est-ce que quelque chose comme ça /html/body/div/div/div[2]/div/table[1]/tbody/tr/td[1]/a/img

Il suffit de changer la commande expresso à onWebView().withElement(findElement(Locator.XPATH, "/html/body/div/div/div[2]/div/table[1]/tbody/tr/td[1]/a/img")).perform(webClick());

Il devrait être en cliquant sur cet élément spécifique.