TłoBiorąc zrzut ekranu z jednej aplikacji w widoku z JavaScript
uruchomić testy UI w aplikacji pracuję na symulując wprowadzanych przez użytkownika z JS. JS uruchamia kilka wyzwalaczy myszy i klawiatury w sekwencji na elemencie iframe, w którym działa uruchomiona testowana aplikacja i mogę obserwować przerwy. Chciałbym go tak skonfigurować, aby mógł okresowo wykonywać zrzuty ekranu bieżącego stanu.
już za
Wiem, że to pytanie jest duplikatem, to pytam ponownie teraz w przypadku nastąpiły jakieś zmiany w tym miejscu w ostatnim czasie.
Zajrzałem do http://html2canvas.hertzen.com/, aby wykonać zrzuty ekranu i chociaż działa w większości przypadków, wydaje się, że ma problemy, gdy jest dużo użycia CSS3 i webfontów.
Nie mogę również używać metody po stronie serwera, ponieważ pracuję nad aplikacją szkieletową pojedynczej strony i nie przechowuję stanu opartego na adresach URL (w przeważającej części).
Nawet rzuciłem okiem na specyficzną dla Mozilli właściwość background:-moz-element()
, ale to nie działa, gdy żądana strona jest w elemencie iframe.
Myślę, że najbliżej tego, czego potrzebuję, jest phantomJS, który pozwala manipulować stroną i robić zrzut ekranu. Chciałbym tego uniknąć, ponieważ w przeciwnym razie skorzystam z możliwości sprawdzenia testu.
Czy ktoś wie o czymkolwiek, co mógłbym tutaj wykorzystać? Może to być nawet jedna przeglądarka (Firefox lub Chrome), o ile działa w systemie Windows. Nie musi działać na wszystkich klientach, tylko na moim, więc wszystko jest w porządku, nawet jeśli muszę skonfigurować specjalne środowisko, o ile zrzuty ekranu można zapisać za pomocą JS (tylko w Firefoksie lub Chrome, więc nie ma ActiveX).
TL; DR Potrzebujesz JavaScript lub HTML5 API, aby zapisać zrzuty ekranu aplikacji uruchomionej w elemencie iframe. Żadnych płatnych rozwiązań, proszę.
Czy pytanie "
Czy https://chrome.google.com/webstore/detail/screen-capture-by-google/cpngackimfmofbokmjmljamhdncknpmg Ci pomóc? Wygląda na skrypt, ale nie widzę przykładów. – patrickmdnet
@couzzi Yup, obie działają w tej samej domenie. Musiałam to zrobić, żeby obejść wszystkie sgstrady JS. – JohnP