Używam selenu do pobrania tekstu na mojej stronie przy użyciu xpath.Czytanie tekstu przy użyciu selionowego webdrivera (xpath)
Struktura tag strona jest następujący -
<span id="data" class="firefinder-match">
Seat Height, Laden
<sup>
<a class="speckeyfootnote" rel="p7" href="#">7</a>
</sup>
</span>
Gdybym użyć następującego kodu -
driver.findElement(By.xpath("//span[@id='data']")).getText();
uzyskać wynik = Seat Height, Laden 7
Ale chcę uniknąć czytania tekst w tagach <sup>
i uzyskaj
Proszę dać mi znać, które wyrażenie xpath mogę użyć, aby uzyskać pożądany wynik.
Um. W zwykłym XPath (który byłby w stanie zwrócić Stringi, a nie tylko WebElements), możesz zrobić '// span [@ id = 'data']/text() [1]'. Jedno z możliwych rozwiązań, jakie mogę wymyślić, używa JS, drugie pobiera cały tekst, a następnie usuwa wszystko z elementów potomnych. Oba rozwiązania są dość brzydkie i chciałbym zobaczyć coś ładniejszego. W każdym razie, jeśli w rozsądnym krótkim czasie nie będzie odpowiedzi, opublikuję to. –
Każdy powód, dla którego xpath jest Twoją jedyną opcją? Webdriver najdłużej lokalizuje element przy pomocy xpath – Amey
. Dobrze, że używam xpath tylko dlatego, że czuję się z tym komfortowo. Jeśli istnieje jakikolwiek inny sposób rozwiązania mojego problemu, będę wdzięczny. –