Widziałem istniejące pytanie z tym samym tytułem Ale to było inne pytanie.

Powiedzmy, że chcę znaleźć elementy, które mają "program" w class. próbowałem

//div[contains(@class,'conGraph')]

Prawidłowo dostał

<div class='conGraph mr'>

Ale to też fałszywie się dostało

<div class='conGraph_wrap'>

Co nie jest w ogóle tej samej klasy. W tym przypadku tylko mogłem użyć 'conGraph ' i uciec z nim, ale chciałbym poznać ogólne rozwiązanie do wykorzystania w przyszłości.

Krótko mówiąc, chcę uzyskać elementy, których klasa zawiera "Word" jak "Word", "Word Word2" lub "Word3 Słowo" itp., Ale nie jak "Słowa" lub "fake_word" lub "miecze". Czy to jest możliwe?

0
Damn Vegetables 28 lipiec 2020, 08:14

1 odpowiedź

Najlepsza odpowiedź

Jedną z opcji może być użycie 4 warunków (dokładny termin + 3 contains Funkcja z obsługą WhiteSPACE):

W pierwszym stanie przeszukasz dokładny termin w treści atrybutu. Drugi, trzeci i czwarty określiłeś wszystkie warianty WhiteSPACE.

Dane:

<div class='word'></div>
<div class='word word2'></div>
<div class='word word3'></div>
<div class='swords word'></div>
<div class='swords word words'></div>
<div class='words'></div>
<div class='fake_word'></div>
<div class='sword'></div>

XPath:

//div[@class="word" or contains(@class,"word ") or contains(@class," word") or contains(@class," word ")]

Wynik :

<div class='word'></div>
<div class='word word2'></div>
<div class='word word3'></div>
<div class='swords word'></div>
<div class='swords word words'></div>
1
E.Wiest 28 lipiec 2020, 15:29