Jak najprościej zrobić to co chcę (programowo w Javie)? Szukać w Selenium? Czy to jest biblioteka która tylko korzysta z rzeczywistej przeglądarki? (tu znalazłem, że jest jakiś "virtual display", ale nie mogę znaleźć odpowiednika klasy Display w Javie).
@o_40855: a to nie jest w JavaScripcie po stronie klienta? Ja potrzebuję robić te screeny po stronie serwera (bez udziału użytkownika). Czy to jakoś podpina się PhantomJS do Selenium?
WebDriver driver = new HtmlUnitDriver(); To dostaję błąd "unable to create HTML parser" (szukałem rozwiązania, dodałem dependency do NekoHTML, ale nie pomogło).
@kisi3l: nie ma metody setJavaScriptEnabled w klasach WebClient ani WebDriver (chyba dlatego, że to dla starszych wersji). Znalazłem jednak sposób, żeby to ustawić: DesiredCapabilities cap = new DesiredCapabilities(); cap.setJavascriptEnabled(true); WebDriver driver = new HtmlUnitDriver(cap); Ale też nie pomogło :(
Sprawdzałem Nekko jest tylko jedno (dzięki za hinta).
Sam już nie wiem co robić... Jakieś zbugowane to Selenium ;/
@kisi3l: dobra, jakoś udało mi się uruchomić (zrobiłem nowy projekt, widocznie rzeczywiście coś mi się gryzie, potem najwyżej to pomęczę). Ale jest inny problem: HtmlUnitDriver nie wspiera robienia screenów: Exception in thread "main" java.lang.ClassCastException: org.openqa.selenium.htmlunit.HtmlUnitDriver cannot be cast to org.openqa.selenium.TakesScreenshot Szukałem rozwiązania: https://code.google.com/p/selenium/issues/detail?id=1361 (nie da się, ta "implementacja" pobiera pliki ze strony a nie robi screeny) http://stackoverflow.com/questions/19968754/taking-a-screenshot-using-selenium (jedna implementacja nie działa, a druga to ta sama co wyżej - pobiera pliki
Mirki, jest jakieś picie najlepiej bez cukru albo w miarę mało, które da się pić i nie kosztuje fortuny? Ice tea zero bardzo dobre ale 6-7 zł za 1.5 litra to troche sporo
Chcę w aplikacji na serwerze zrobić screenshota strony internetowej.
Tu znalazłem sposób z Selenium: http://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver/3423347#3423347
Działa to tak, że program uruchamia przeglądarkę internetową (!), robi screena i zapisuje. Oczywiście takie coś nie zadziała serwerze (no i jak to w ogóle wygląda...).
Jak najprościej zrobić to co chcę (programowo w Javie)? Szukać w Selenium? Czy to jest biblioteka która tylko korzysta z rzeczywistej przeglądarki? (tu znalazłem, że jest jakiś "virtual display", ale nie mogę znaleźć odpowiednika klasy Display w Javie).
@o_40855: a to nie jest w JavaScripcie po stronie klienta? Ja potrzebuję robić te screeny po stronie serwera (bez udziału użytkownika). Czy to jakoś podpina się PhantomJS do Selenium?
@adios: @kisi3l: próbuję zrobić:
WebDriver driver = new HtmlUnitDriver();
To dostaję błąd "unable to create HTML parser" (szukałem rozwiązania, dodałem dependency do NekoHTML, ale nie pomogło).
@mk321: Jak dodałeś dependency?
org.seleniumhq.selenium
selenium-java
2.48.2
I nie działało, to próbowałem też dodać (do selenium-server zresztą też):
org.seleniumhq.selenium
selenium-htmlunit-driver
2.48.2
W necie pisali, że NekoHTML potrzebny, to próbowałem też:
net.sourceforge.nekohtml
nekohtml
1.9.22
http://wklej.org/hash/eb93c7d2416/
DesiredCapabilities cap = new DesiredCapabilities();
cap.setJavascriptEnabled(true);
WebDriver driver = new HtmlUnitDriver(cap);
Ale też nie pomogło :(
Sprawdzałem Nekko jest tylko jedno (dzięki za hinta).
Sam już nie wiem co robić... Jakieś zbugowane to Selenium ;/
Ale jest inny problem: HtmlUnitDriver nie wspiera robienia screenów:
Exception in thread "main" java.lang.ClassCastException: org.openqa.selenium.htmlunit.HtmlUnitDriver cannot be cast to org.openqa.selenium.TakesScreenshot
Szukałem rozwiązania:
https://code.google.com/p/selenium/issues/detail?id=1361
(nie da się, ta "implementacja" pobiera pliki ze strony a nie robi screeny)
http://stackoverflow.com/questions/19968754/taking-a-screenshot-using-selenium
(jedna implementacja nie działa, a druga to ta sama co wyżej - pobiera pliki