2017-10-17 3 views
0

maintenant j'ai plus compliqué (au moins pour moi) et du mal à trouver l'élément (qui est dynamique - change tous les jours). Voici comment cela ressemble à la page. En plus est 'ul'Élément dynamique à l'intérieur de plusieurs 'li'

<ul class="feed-tips" id="Grid" 

Voici 50 'li' avec le même nom:

<li class="feed-item vevent tip-list-row" 

Ci-dessous un de ces 'li' sont

<div class="tip medium-9 small-12 column padding-reset dtstart tip-list-row__tip"> 
<a href="link to a page" class="summary url">Heading4</a> 

Donc, un lien vers une page & Titre4 (dans 'href ') sont dynamiques et il sera inutile de i.e demain. Au-dessus est 5 « li » dans la liste et j'ai essayé de trouver l'élément avec le sélecteur de css, mais il ne fonctionne pas - est ici ce que j'ai essayé:

//Open 5th from the list 
    driver.findElement(By.cssSelector("#Grid > li:nth-child(5) > div.tip.medium-9.small-12.column.padding-reset.dtstart.tip-list-row__tip > div.tip-match.medium-12.column > div.tip-teams > a")).click(); 

Merci à l'avance.

+0

Essayé aussi xpath, voici le: driver.findElement (By.xpath ("// * [@ id =" Grille "]/li [3]/div [2]/div [2]/div [1]/a ")) – Zoran

+0

@Zoran Le CSS dans le message d'origine ne correspond pas à la source html que vous avez ajouté. Il y a 2 divs supplémentaires dans le CSS qui sont absents dans la source. S'il n'y a qu'un seul lien dans les 50 li, pourquoi s'embêter avec l'utilisation de l'index. Utilisez simplement "ul [id = 'Grid']> li a [class = 'summary url']". – Grasshopper

+0

@Grasshopper - J'ai dû faire une erreur quelque part lors de la création de la question - L'idée ne devait pas créer une longue question. En ce qui concerne les lignes cssselector et xpath, elles sont directement sélectionnées à partir de la page. Ils sont corrects - juste xpath est en fait le 3ème élément, pas le 5ème. – Zoran

Répondre

1

Si vous essayez de trouver l'élément d'ancrage avec href dynamique, vous pouvez utiliser un peu le XPath comme ci-dessous:

// ul [@ id = 'Grid']/li // div [contient (@class, 'tip-teams')] // a [@href]

Je n'ai pas compris le problème total, mais il énumérera tous les liens avec l'attribut href dans cette hiérarchie. Dans ce cas, n'utilisez aucune sorte d'indexation. En outre, pas nécessaire d'explorer tous les niveaux de la hiérarchie.

// a [@href] - Il vous fournira tous les liens avec @href sans aucune comparaison de valeur.

+0

merci - c'est exactement ce que je voulais trouver – Zoran