xpath jak oszukac kompilator

0

Czesc, czy wiecie moze czy mozna napisac sciezke xpath w taki sposob, zeby kompilator myslal, ze odnosze sie do elementu div, a nie jakiegos innego? znalazlem taki przyklad w necie:

//div[@class='errorblock'] -> //div[../strong[contains(text(),'The following errors were found:')]]

Moja sciezka wyglada tak: //flight-list[@id="outbound"]//div[@class="flight-list-wrapper"]/div/flights-table/div[@class="flights-table"]//div[@class="meta-row time"]/span[text()='06:50']/../../../../../flights-table-header

i chce, zeby element 'flights-atable-header' zostalo zinterpretowane jako div

efekt moich nieudanych prob: //flight-list[@id="outbound"]//div[@class="flight-list-wrapper"]/div/flights-table/div[@class="flights-table"]//div[@class="meta-row time"]/span[text()='06:50']/../../../../../..//div[../flights-table-header]

a tak generalnie to chce wyciagnac wartosc id. Nic nie dzialalo, a na stack overflow przeczytalem wlasnie, ze wartosc id pozna chwycic tylko dla elementow typu div

0

@bananananafu: zalacz wejsciowy xml i napisz co dokladnie chcesz zrobic.

0

jasne

w zasadzie istotny jest tylko ten element :

"<flights-table-header ng-click="$ctrl.onFlightOpened(flight)" ng-class="::{'standard-only': $ctrl.hasSpanishDiscount}" flight="::flight" departure="::$ctrl.departure" destination="::$ctrl.destination" flight-opened="$ctrl.flightOpened === flight.flightKey" selected-fare-type="$ctrl.singleFareType" fares-configuration="::$ctrl.faresConfig" fare-selected="false" type="outbound" day-discounts="::$ctrl.dayDiscounts" id="flight-FR~1022~ ~~WMI~01/22/2017 06:50~STN~01/22/2017 08:30~" class="">"

chce po prostu wyciagnac z niego wartosc "id" z poziomu aplikacji w javie. Chwytam go i zapisuje do WebElement za pomoca findElement(By.xpath(path)). i korzystam z metody getAttribute(). Za jej pomoca jestem w stanie siegnac do kazdego z parametrow np "ng-class" czy "type". Jednak w przypadku proby getAtribute("id") nic nie jest zwracane. Szukalem pomocy w roznych tekstach i roznych forach i jedyne co znalazlem na ten temat to czyjs komentarz, ze do pol "id" moge siegnac za pomaca getAtribute() tylko i wylacznie w przypadku elementow div (a ja mam w swoim elemencie "flights-table-header"). Czesc dalsza tego komentarza mowila, ze trzeba napisac sciezke do tego elementu w taki sposob, zeby kompilator myslal, ze siegam do elementu typu div.
Nie wiem czy to ma sens, ale w tej chwili to dla mnie jedyny punkt zaczepienia.

Czy sa jakies sposoby na taki problem?

0

Czy na pewno ścieżka do twojego elementu jest poprawna?

0

tak, na 100%
sprawdzalem ja zarowno za pomoca rozszerzenia do chroma, jak i w plikacji wszytkie metody wykonane na elemencie typu getText(), getAtribute() (poza geteAtribute("id")) zwracaja wyniki zgodnie z oczekiwaniami

0

Pokaż kod.
PS. Umieść go w znaczniki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1