Wpis z mikrobloga

Mirki z #selenium ktoś wie dlaczego może nie działać takie wyrażenie :
System.out.println(driver.findElement(By.xpath("//tbody//tr//td//label//a[@data-date='20170318']")));
błąd : Unable to locate element: , ale w konsoli firebug pokazuje dobrze ...$x("//tbody//tr//td//label//a[@data-date='20170318']")

Stronka to https://book.wizzair.com/en-GB/TimeTable -Niestety trzeba wejsc na stronke i wybrac pierwsze lepsze z brzegu.

Dla zainteresowanych cały kod http://wklej.org/id/3064282/
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

po kliknięciu "SHOW" musisz odczekać, aż załaduje się kalendarz. Najlepiej zrobić jakiegoś explicit waita. Na szybko możesz ustawić implic wait na driverze, zobaczysz że wtedy nie wywali Ci od razu wyjątku, powinno być ok tymczasowo, żeby upewnić się, że w tym jest problem
  • Odpowiedz
@robie_bota: moim zdaniem selenium to słaby pomysł, ja bym zrobił po http, nie wiem czy wystawiają jakąś dokumentację api, ale requesty wyglądają tak, że można śmiało samemu ogarnąć co się dzieje. Tutaj nawet jest jakiś gotowiec, nie wczytywałem się, pierwszy wynik z google: https://github.com/projectivemotion/wizzair-scraper

oczywiście do prostych rzeczy selenium wystarczy i być może takie proste rzeczy da sie nawet szybciej zrobić
  • Odpowiedz