Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Puppeteer: Screenshots PhantomJS Alternative

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Puppeteer: Screenshots PhantomJS Alternative

    This topic has been deleted. Only users with topic management privileges can see it.
    • Neuschwansteini
      Neuschwansteini last edited by

      @foxriver76 ja, fand ich auch, hab noch ein Problem, denke das kann auch am Docker liegen.. ? der kann irgendwie Chrome nicht starten oder hat n Problem mit der sandbox.. ??

      2023-03-19 11:05:50.634  - info: puppeteer.0 (8448) starting. Version 0.2.7 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v16.19.1, js-controller: 4.0.24
      2023-03-19 11:05:50.634  - info: puppeteer.0 (8448) starting. Version 0.2.7 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v16.19.1, js-controller: 4.0.24
      2023-03-19 11:05:52.762  - error: puppeteer.0 (8448) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
      2023-03-19 11:05:52.762  - error: puppeteer.0 (8448) unhandled promise rejection: Failed to launch the browser process!
      [0319/110552.557613:FATAL:zygote_host_impl_linux.cc(127)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
      #0 0x55ab22b4c7d2 base::debug::CollectStackTrace()
      #1 0x55ab22aac373 base::debug::StackTrace::StackTrace()
      #2 0x55ab22aa92d8 logging::LogMessage::~LogMessage()
      #3 0x55ab2130cd56 content::ZygoteHostImpl::Init()
      #4 0x55ab2202113c content::ContentMainRunnerImpl::Initialize()
      #5 0x55ab2201e780 content::RunContentProcess()
      #6 0x55ab2201eb86 content::ContentMain()
      #7 0x55ab225f5259 headless::HeadlessShellMain()
      #8 0x55ab1e7d9255 ChromeMain
      #9 0x7f64f225bd0a __libc_start_main
      #10 0x55ab1e7d902a _start
      
      
      
      TROUBLESHOOTING: https://pptr.dev/troubleshooting
      
      2023-03-19 11:05:52.763  - error: puppeteer.0 (8448) Error: Failed to launch the browser process!
      [0319/110552.557613:FATAL:zygote_host_impl_linux.cc(127)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
      #0 0x55ab22b4c7d2 base::debug::CollectStackTrace()
      #1 0x55ab22aac373 base::debug::StackTrace::StackTrace()
      #2 0x55ab22aa92d8 logging::LogMessage::~LogMessage()
      #3 0x55ab2130cd56 content::ZygoteHostImpl::Init()
      #4 0x55ab2202113c content::ContentMainRunnerImpl::Initialize()
      #5 0x55ab2201e780 content::RunContentProcess()
      #6 0x55ab2201eb86 content::ContentMain()
      #7 0x55ab225f5259 headless::HeadlessShellMain()
      #8 0x55ab1e7d9255 ChromeMain
      #9 0x7f64f225bd0a __libc_start_main
      #10 0x55ab1e7d902a _start
      
      
      
      TROUBLESHOOTING: https://pptr.dev/troubleshooting
      
         at onClose (/opt/iobroker/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.js:302:20)
         at Interface.<anonymous> (/opt/iobroker/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.js:290:24)
         at Interface.emit (node:events:525:35)
         at Interface.close (node:readline:590:8)
         at Socket.onend (node:readline:280:10)
         at Socket.emit (node:events:525:35)
         at endReadableNT (node:internal/streams/readable:1358:12)
         at processTicksAndRejections (node:internal/process/task_queues:83:21)
      2023-03-19 11:05:52.764  - error: puppeteer.0 (8448) Failed to launch the browser process!
      [0319/110552.557613:FATAL:zygote_host_impl_linux.cc(127)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
      #0 0x55ab22b4c7d2 base::debug::CollectStackTrace()
      #1 0x55ab22aac373 base::debug::StackTrace::StackTrace()
      #2 0x55ab22aa92d8 logging::LogMessage::~LogMessage()
      #3 0x55ab2130cd56 content::ZygoteHostImpl::Init()
      #4 0x55ab2202113c content::ContentMainRunnerImpl::Initialize()
      #5 0x55ab2201e780 content::RunContentProcess()
      #6 0x55ab2201eb86 content::ContentMain()
      #7 0x55ab225f5259 headless::HeadlessShellMain()
      #8 0x55ab1e7d9255 ChromeMain
      #9 0x7f64f225bd0a __libc_start_main
      #10 0x55ab1e7d902a _start
      
      
      
      TROUBLESHOOTING: https://pptr.dev/troubleshooting
      
      2023-03-19 11:05:52.767  - info: puppeteer.0 (8448) terminating
      2023-03-19 11:05:52.768  - warn: puppeteer.0 (8448) Terminated (UNCAUGHT_EXCEPTION): Without reason
      2023-03-19 11:05:53.311  - error: host.iobroker instance system.adapter.puppeteer.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
      2023-03-19 11:05:53.312  - info: host.iobroker Restart adapter system.adapter.puppeteer.0 because enabled
      2023-03-19 11:05:52.762  - error: puppeteer.0 (8448) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
      2023-03-19 11:05:52.762  - error: puppeteer.0 (8448) unhandled promise rejection: Failed to launch the browser process!
      [0319/110552.557613:FATAL:zygote_host_impl_linux.cc(127)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
      #0 0x55ab22b4c7d2 base::debug::CollectStackTrace()
      #1 0x55ab22aac373 base::debug::StackTrace::StackTrace()
      #2 0x55ab22aa92d8 logging::LogMessage::~LogMessage()
      #3 0x55ab2130cd56 content::ZygoteHostImpl::Init()
      #4 0x55ab2202113c content::ContentMainRunnerImpl::Initialize()
      #5 0x55ab2201e780 content::RunContentProcess()
      #6 0x55ab2201eb86 content::ContentMain()
      #7 0x55ab225f5259 headless::HeadlessShellMain()
      #8 0x55ab1e7d9255 ChromeMain
      #9 0x7f64f225bd0a __libc_start_main
      #10 0x55ab1e7d902a _start
      
      
      
      TROUBLESHOOTING: https://pptr.dev/troubleshooting
      
      2023-03-19 11:05:52.763  - error: puppeteer.0 (8448) Error: Failed to launch the browser process!
      [0319/110552.557613:FATAL:zygote_host_impl_linux.cc(127)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
      #0 0x55ab22b4c7d2 base::debug::CollectStackTrace()
      #1 0x55ab22aac373 base::debug::StackTrace::StackTrace()
      #2 0x55ab22aa92d8 logging::LogMessage::~LogMessage()
      #3 0x55ab2130cd56 content::ZygoteHostImpl::Init()
      #4 0x55ab2202113c content::ContentMainRunnerImpl::Initialize()
      #5 0x55ab2201e780 content::RunContentProcess()
      #6 0x55ab2201eb86 content::ContentMain()
      #7 0x55ab225f5259 headless::HeadlessShellMain()
      #8 0x55ab1e7d9255 ChromeMain
      #9 0x7f64f225bd0a __libc_start_main
      #10 0x55ab1e7d902a _start
      
      
      
      TROUBLESHOOTING: https://pptr.dev/troubleshooting
      
         at onClose (/opt/iobroker/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.js:302:20)
         at Interface.<anonymous> (/opt/iobroker/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.js:290:24)
         at Interface.emit (node:events:525:35)
         at Interface.close (node:readline:590:8)
         at Socket.onend (node:readline:280:10)
         at Socket.emit (node:events:525:35)
         at endReadableNT (node:internal/streams/readable:1358:12)
         at processTicksAndRejections (node:internal/process/task_queues:83:21)
      2023-03-19 11:05:52.764  - error: puppeteer.0 (8448) Failed to launch the browser process!
      [0319/110552.557613:FATAL:zygote_host_impl_linux.cc(127)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
      #0 0x55ab22b4c7d2 base::debug::CollectStackTrace()
      #1 0x55ab22aac373 base::debug::StackTrace::StackTrace()
      #2 0x55ab22aa92d8 logging::LogMessage::~LogMessage()
      #3 0x55ab2130cd56 content::ZygoteHostImpl::Init()
      #4 0x55ab2202113c content::ContentMainRunnerImpl::Initialize()
      #5 0x55ab2201e780 content::RunContentProcess()
      #6 0x55ab2201eb86 content::ContentMain()
      #7 0x55ab225f5259 headless::HeadlessShellMain()
      #8 0x55ab1e7d9255 ChromeMain
      #9 0x7f64f225bd0a __libc_start_main
      #10 0x55ab1e7d902a _start
      
      
      
      TROUBLESHOOTING: https://pptr.dev/troubleshooting
      
      2023-03-19 11:05:52.767  - info: puppeteer.0 (8448) terminating
      2023-03-19 11:05:52.768  - warn: puppeteer.0 (8448) Terminated (UNCAUGHT_EXCEPTION): Without reason
      2023-03-19 11:05:53.311  - error: host.iobroker instance system.adapter.puppeteer.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
      2023-03-19 11:05:53.312  - info: host.iobroker Restart adapter system.adapter.puppeteer.0 because enabled
      

      foxriver76 1 Reply Last reply Reply Quote 0
      • foxriver76
        foxriver76 Developer @Neuschwansteini last edited by

        @ilovegym Probier mal bitte das im Container https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#recommended-enable-user-namespace-cloning

        1 Reply Last reply Reply Quote 0
        • Neuschwansteini
          Neuschwansteini last edited by

          @foxriver76

          Hi,
          Hat leider nicht funktioniert, Variante a sagt den Datenpunkt in proc/sys gibts nicht, und bei Variante b find ich die chrome_sandbox nicht.. hmm

          Hat noch einer den Adapter im Docker laufen?

          1 Reply Last reply Reply Quote 0
          • M
            Marty56 last edited by

            Puppender stürzt bei mir auch ab, weil der Adapter wohl auch den Browser nicht starten kann.

            OS: Debian
            Node:v14.21.3
            npm: 6.14.18
            iobroker: aktuelle Versionen vom stable Repro.

            apt update und apt upgrade habe ich gemacht und gebootet.

            2023-04-21 06:39:42.178 - info: puppeteer.0 (2686) starting. Version 0.2.7 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v14.21.3, js-controller: 4.0.24
            2023-04-21 06:39:42.288 - error: puppeteer.0 (2686) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
            2023-04-21 06:39:42.290 - error: puppeteer.0 (2686) unhandled promise rejection: Failed to launch the browser process! undefined
            TROUBLESHOOTING: https://pptr.dev/troubleshooting
            2023-04-21 06:39:42.294 - error: puppeteer.0 (2686) Error: Failed to launch the browser process! undefined
            TROUBLESHOOTING: https://pptr.dev/troubleshooting
            at ChildProcess.onClose (/opt/iobroker/node_modules/@puppeteer/browsers/lib/cjs/launch.js:262:24)
            at ChildProcess.emit (events.js:412:35)
            at Process.ChildProcess._handle.onexit (internal/child_process.js:285:12)
            2023-04-21 06:39:42.295 - error: puppeteer.0 (2686) Failed to launch the browser process! undefined
            TROUBLESHOOTING: https://pptr.dev/troubleshooting
            2023-04-21 06:39:42.310 - info: puppeteer.0 (2686) terminating
            2023-04-21 06:39:42.313 - warn: puppeteer.0 (2686) Terminated (UNCAUGHT_EXCEPTION): Without reason
            2023-04-21 06:39:42.942 - error: host.Thom
            
            Thomas Braun Neuschwansteini 2 Replies Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active @Marty56 last edited by

              @marty56 sagte in Puppeteer: Screenshots PhantomJS Alternative:

              Node:v14.21.3

              Versuchs mal mit aktueller nodejs-Version.

              1 Reply Last reply Reply Quote 1
              • Neuschwansteini
                Neuschwansteini @Marty56 last edited by

                @marty56 ist das ein Docker oder sowas? Ist Chrome und der Adapter mit allen Depencies installiert, also nur den Adapter alleine geht ja nicht, wie du in der Anleitung gelesen hast.. 🙂

                M 1 Reply Last reply Reply Quote 0
                • M
                  Marty56 @Neuschwansteini last edited by

                  @ilovegym Ich finde keine Anleitung zum Installieren. Im Github readme steht nur, wie man puppeteer benutzt, wenn er installiert ist.

                  Wo finde ich das Vorgehen zum Installieren von chrome?

                  Neuschwansteini 1 Reply Last reply Reply Quote 0
                  • Neuschwansteini
                    Neuschwansteini @Marty56 last edited by

                    @marty56 hast recht, habs mit Phantomjs verwechselt.. hier sollten alle depencies mit installiert werden..
                    und das linux ist aufm Raspi installiert, kein Docker?

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Marty56 @Neuschwansteini last edited by

                      @ilovegym Aber Dein Hinweis hat mich auf eine Spur gebraucht. Ich habe bemerkt, dass ich unter
                      /opt/iobroker/node_modules/puppeteer kein verstecktes Verzeichnis
                      .local-chromium habe.

                      Keine Ahnung warum. ich habe ganz normal über den Tab Adapter installiert.

                      1 Reply Last reply Reply Quote 0
                      • B
                        bimmi @Thomas Braun last edited by

                        Danke für den Adapter!

                        Gibt es eine Möglichkeit die Qualität des generierten jpg einzustellen?

                        arteck 1 Reply Last reply Reply Quote 0
                        • arteck
                          arteck Developer Most Active @bimmi last edited by

                          @bimmi RTFM https://github.com/foxriver76/ioBroker.puppeteer/blob/main/README.md

                          B 1 Reply Last reply Reply Quote 0
                          • B
                            bimmi @arteck last edited by

                            @arteck vielen Dank für das manual! Das kenne ich bereits. Mir ging es hier in dem Beitrag rund um den Adapter für iobroker darum, ob man es ermöglichen kann, den Parameter mit quality zusätzlich zur Clip höhe/breite usw mit übertragen kann.

                            Das ist ja nicht möglich, da ja nur die wichtigsten Parameter eingetragen werden können.

                            foxriver76 1 Reply Last reply Reply Quote 0
                            • foxriver76
                              foxriver76 Developer @bimmi last edited by

                              @bimmi Wenn du sendTo nutzt kannst du wie in der ReadMe steht, alle Optionen die in der Puppeteer API verfügbar sind mitgeben.

                              B 1 Reply Last reply Reply Quote 0
                              • B
                                bimmi @foxriver76 last edited by

                                @foxriver76 ok. Danke. Jetzt verstehe ich.

                                Geht das auch mit blockly? Sento gibt es ja keine Option für puppeteer... 😬

                                foxriver76 1 Reply Last reply Reply Quote 0
                                • foxriver76
                                  foxriver76 Developer @bimmi last edited by foxriver76

                                  @bimmi Ich habe keine Ahnung von Blockly, im Zweifel nimmst du einen JavaScript Block und adjustierst das Beispiel aus der ReadMe. Wobei da die ganzen ? raus müssen, die zeigen nur auf, dass eine Property optional ist.

                                  B 1 Reply Last reply Reply Quote 1
                                  • B
                                    bimmi @foxriver76 last edited by

                                    @foxriver76 danke! Ich glaube ich hab es gefunden 😂 man lernt nie aus!

                                    Screenshot_2023-07-12-11-03-55-682_com.chrome.beta.jpg

                                    B 1 Reply Last reply Reply Quote 0
                                    • B
                                      bimmi @bimmi last edited by bimmi

                                      vielleicht nochmal an die, die bereits ein blockly erstellt hatten...

                                      Sorry, ich blick da bei dem SendTo nicht durch 😞

                                      So sieht mein Blockly aus:

                                      a929ba19-55d3-44a1-977f-0676a58b3ade-image.png

                                      diesen Fehler bekomme ich:

                                      bdd0ef66-912a-418e-a6a9-addeee4d56c4-image.png

                                      
                                      javascript.0
                                      2023-07-12 16:21:54.618	error	script.js.EPS.Grundwasser: {'error':{}}
                                      
                                      puppeteer.0
                                      2023-07-12 16:21:54.615	error	Could not take screenshot of "http://192.168.1.10:8082/vis/index.html?EPS#Grundwasser": Expected options.clip.x to be a number but found undefined
                                      

                                      Der Fehler sagt eigentlich, dass es mit dem clip width und height ein Problem gibt. Der Datenpunkt ist eine "number".

                                      Jemand, der das schon in Blockly getan hat vielleicht einen Tipp für mich? 🦆

                                      Auf Debug kommt folgende Message:

                                      puppeteer.0
                                      2023-07-12 17:06:02.091	debug	Message: {"command":"screenshot","message":{"url":"http://192.168.1.10:8082/vis/index.html?EPS#Grundwasser","waitOption":{"waitForTimeout":5000},"clip":"{width:296height:128}","path":"/var/www/html/eps-display/Grundwasser.jpg","quality":100},"from":"system.adapter.javascript.0","callback":{"message":{"url":"http://192.168.1.10:8082/vis/index.html?EPS#Grundwasser","waitOption":{"waitForTimeout":5000},"clip":"{width:296height:128}","path":"/var/www/html/eps-display/Grundwasser.jpg","quality":100},"id":14,"ack":false,"time":1689174362088},"_id":40259716}
                                      

                                      Da fehlt auch m.M. noch ein Trennzeichen wenn er das aus den Textfeldern zusammenstellt...

                                      B 1 Reply Last reply Reply Quote 0
                                      • B
                                        bimmi @bimmi last edited by

                                        ich bin inzwischen etwas weiter gekommen:

                                        Jetzt bekomme ich zwar keine Fehlermeldung, jedoch schneider mir puppeteer den Screenshot nicht zu.

                                        puppeteer.0
                                        2023-07-12 17:57:40.099	debug	Message: {"command":"screenshot","message":{"url":"http://192.168.1.10:8082/vis/index.html?EPS#Grundwasser","path":"/var/www/html/eps-display/Grundwasser.jpg","quality":100,"waitOptions":{"waitForTimeout":2000},"clip.width":296,"clip.height":128,"clip.x":0,"clip.y":0},"from":"system.adapter.javascript.0","callback":{"message":{"url":"http://192.168.1.10:8082/vis/index.html?EPS#Grundwasser","path":"/var/www/html/eps-display/Grundwasser.jpg","quality":100,"waitOptions":{"waitForTimeout":2000},"clip.width":296,"clip.height":128,"clip.x":0,"clip.y":0},"id":37,"ack":false,"time":1689177460098},"_id":40259743}
                                        

                                        fd1cd368-c2cb-4a4b-9506-c6206e70f6a3-image.png

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          bimmi @horphi last edited by

                                          @horphi sagte in Puppeteer: Screenshots PhantomJS Alternative:

                                          Habs gefunden.
                                          Einfach den Haken bei Ergebniss setzen und dann kann ich das Result abfragen....;-)
                                          ec282ada-bcc2-429d-a02d-b579c7d8143f-grafik.png

                                          vielleicht könnte ich mir das blockly mal ansehen. ich bekomme diese Blöcke absolut nicht hin 😞 ich denke das ist genau das was ich suche nur mit dem clip.height und clip.width.

                                          1 Reply Last reply Reply Quote 0
                                          • O
                                            oxident last edited by

                                            Hättet ihr eine Idee, wie ich das Ergebnis (also den Screenshot) per VIS zur Verfügung stellen könnte?
                                            Nutze Redis ... daher finde ich die erzeugte Datei leider nirgends im FS.

                                            B 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            953
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            browser headless phantomjs puppeteer screenshot screenshots website
                                            23
                                            245
                                            24061
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo