2017-09-13 2 views
0

lorsque l'attribut texte est défini surComment tester élément débordement texte

text-overflow: ellipsis; 

le texte débordés sera affiché comme « XX... » (voir capture d'écran pour plus) comment puis-je trouver le débordait text/element dans WebDriver ?

merci à l'avance

Screenshot of Overflowed text

+0

ce que vous avez essayé? – Aby

+0

J'utilise xpath "// span [chaîne-longueur (texte())> 2]" pour trouver les éléments dont la longueur du texte> 2. Cependant, je teste l'application multi-langue et la règle "> x" n'a pas toujours appliquer à d'autres langues. donc je me demande s'il y a une meilleure façon de trouver les éléments débordés – vChen

Répondre

0

Probablement le plus facile de le faire/meilleure façon est d'utiliser la propriété JS innerText, par exemple

driver.findElement(lcoator).getAttribute("innerText"); 

Si je me souviens bien, certains navigateurs utilisent textContent à la place.

driver.findElement(lcoator).getAttribute("textContent"); 

Cela devrait vous permettre d'obtenir le texte intégral à l'intérieur de cet élément.

Vous pouvez également tirer innerHTML et l'analyser (si nécessaire) ou supprimer le style text-overflow de l'élément, mais ceux-ci sont plus difficiles/plus compliqués.

+0

Merci pour votre réponse. Oui, je suis en mesure d'obtenir le innerText en utilisant getAttribute ("innerText"), mais le texte extrait est en texte intégral, je ne sais toujours pas si elles sont débordées ou non ... Je suis en train de tester l'application multi-langue, si j'utilise "text()> x" pour vérifier si le texte est débordé, alors j'ai besoin d'utiliser un x différent pour une langue différente ... est-il possible de savoir si le texte est débordé ou non? – vChen

+0

Je ne pense pas que je comprends ce que vous testez. Ne pouvez-vous pas simplement vérifier si le dernier caractère est une ellipse, puis vérifier innerText et vous assurer que la longueur n'est pas la même que le texte débordé? Il semble que vous allez finir par vérifier que l'attribut CSS fonctionne. – JeffC