Selenium/Webdriver: .execute_script() error wenn string zu lang ist
Verfasst: Freitag 19. Januar 2024, 17:26
Hallo zusammen,
ich hab nen Code erstellt, mit dem man ein HTML Code als PDF herunterladen kann. Dabei sendet der User den HTML Code (der zu einem PDF werden soll) an mein Django Backend.
Selenium öffnet dann eine Seite, fügt das HTML mit driver.execute_script() ein und anschließend erstellt er ein PDF mit
Das Problem: Manchmal sind auch Bilder im HTML Code, welche ziemlich groß sind und daher einen langen String erzeugen.
Wenn der String eine Länge unter ca. 33.500.000 hat funktioniert der Code.
Ist der String allerdings Länger bekomme ich diesen Fehler:
Ich verstehe nicht warum er mir Unexpected token ')' ausgibt, denn ich habe definitiv keinen Syntax Fehler. Der Code funktioniert 1:1, nur mit kleineren Bilder.
Ich vermute eher, dass driver.execute_script() nicht mehr als 33.500.000 Zeichen verarbeiten kann, oder dass der Webdriver beim ausführen des Scripts "abstürzt".
ich hab nen Code erstellt, mit dem man ein HTML Code als PDF herunterladen kann. Dabei sendet der User den HTML Code (der zu einem PDF werden soll) an mein Django Backend.
Selenium öffnet dann eine Seite, fügt das HTML mit driver.execute_script() ein und anschließend erstellt er ein PDF mit
.driver.execute_cdp_cmd("Page.printToPDF", settings)
Das Problem: Manchmal sind auch Bilder im HTML Code, welche ziemlich groß sind und daher einen langen String erzeugen.
Wenn der String eine Länge unter ca. 33.500.000 hat funktioniert der Code.
Ist der String allerdings Länger bekomme ich diesen Fehler:
Code: Alles auswählen
Internal Server Error: /
Traceback (most recent call last):
...
selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.callFunctionOn threw exception: SyntaxError: Unexpected token ')'
(Session info: chrome-headless-shell=120.0.6099.225)
Stacktrace:
GetHandleVerifier [0x00D26EE3+174339]
(No symbol) [0x00C50A51]
(No symbol) [0x00966FF6]
(No symbol) [0x0096AC51]
(No symbol) [0x0096C7C1]
(No symbol) [0x009CACD8]
(No symbol) [0x009B700C]
(No symbol) [0x009CA104]
(No symbol) [0x009B6DA6]
(No symbol) [0x00991034]
(No symbol) [0x00991F8D]
GetHandleVerifier [0x00DC4B1C+820540]
sqlite3_dbdata_init [0x00E853EE+653550]
sqlite3_dbdata_init [0x00E84E09+652041]
sqlite3_dbdata_init [0x00E797CC+605388]
sqlite3_dbdata_init [0x00E85D9B+656027]
(No symbol) [0x00C5FE6C]
(No symbol) [0x00C583B8]
(No symbol) [0x00C584DD]
(No symbol) [0x00C45818]
BaseThreadInitThunk [0x76A0FCC9+25]
RtlGetAppContainerNamedObjectPath [0x77637C6E+286]
RtlGetAppContainerNamedObjectPath [0x77637C3E+238]
Ich vermute eher, dass driver.execute_script() nicht mehr als 33.500.000 Zeichen verarbeiten kann, oder dass der Webdriver beim ausführen des Scripts "abstürzt".