2016-03-23 1 views
1

Je voudrais obtenir le texte (qui est null en ce moment mais obtenir du texte à l'avenir, donc l'impression null devrait être bien pour le moment) de la seconde " 109-top-dark-grey-block ng-binding "classe. Essayé tabIndex et nth-child ne fonctionnent pas. "Comment référencer le second nom de classe si deux classes ont le même nom de classe - en utilisant selenium webdriver

<div class="122-top-section-btm-half"> 
    <div class="108-top-grey-m12x3"></div> 
    <div class="109-top-dark-grey-block ng-binding">ab ab xyz</div> 
</div> 

" "

<div class="d122-top-section-btm-half"> 
    <div class="108-top-grey-m12x4"></div> 
    <div class="109-top-dark-grey-block ng-binding"></div> 

"

Répondre

2

Mise à jour

Pour obtenir le texte du deuxième nième enfant bloc div devrait fonctionner. Je l'ai testé localement le sélecteur dans les outils de chrome:

nth-child selector working in chrome web tools

Donc, dans votre Java:

String elementText = driver.findElement(By.cssSelector(".d122-top-section-btm-half:nth-child(2) .ng-binding")).getText(); 

devrait faire l'affaire - comme CSS spec says nth-child is 1 indexed - pas 0 - donc son 2ème enfant.

Vieille réponse

Basé sur le fragment de code HTML que vous avez fourni, vous pouvez utiliser un sélecteur CSS. Ainsi, vous pouvez faire:

String elementText = driver.findElement(By.cssSelector(".d122-top-section-btm-half .109-top-dark-grey-block")).getText(); 

Ou si vous êtes juste après l'élément avec le ng de liaison au sein de votre premier div alors il serait plus propre:

String elementText = driver.findElement(By.cssSelector(".d122-top-section-btm-half .ng-binding")).getText(); 

deux renverrait le texte élément - peut-être Jetez un oeil à CSS Selectors Guide pour en savoir plus.

+0

Merci pour la réponse Tom. Je cherche un moyen de faire référence à la seconde classe "109-top-dark-grey-block ng-binding">. Comme je l'ai mentionné plus tôt, j'ai deux fois une même hiérarchie, où je devrais référer le nom de la deuxième classe pas le premier. – megan

+0

Hey - J'ai mis à jour la réponse espère que cela aide. Si ce n'est pas ma seule autre suggestion est peut-être votre pilote n'est pas dans la partie de la page que vous pensez que c'est. – Tom

+0

Merci tom. oui, la hiérarchie a eu une autre classe sur le dessus. J'ai pris l'indicateur Unique et mis en œuvre les changements comme vous l'avez suggéré. Ça a marché! – megan