NEWS
Function Syntax Fehler
-
Hi Leute,
ich habe bisher sehr wenig mit dem Javascript Adapter gearbeitet, habe nun allerdings einen Fall wo ich ihn benötige.
Ich habe folgendes Script geschrieben, das auf Änderungen eines Datenpunktes reagieren soll und den ausgelesenen Wert nutzt, um entweder den einen - oder den anderen Button via Puppeteer zu klicken.Leider hab ich direkt bei folgendem Code schon einen Syntax Error:
function() { }
Hier der vollständige Code:
const puppeteer = require('puppeteer'); var object = '0_userdata.0.EigeneDatenpunkte.Ladeschalter'; const host = '192.168.178.60'; var menu = ''; var button = ''; var url = '/'; on({id: object, change: 'ne'}, function() { console.log('Starting Browser...'); console.log('URL: '); console.log(host+url); console.log('Menu element: '); console.log(menu); button= String(getState(object).val); console.log('Button element: '); console.log(button); (async () => { const browser = await puppeteer.launch({args:['--no-sandbox'],executablePath: '/usr/bin/chromium-browser'}); const page = await browser.newPage(); await page.goto(host+url); await page.waitForNavigation(); await page.click('[name=menu]'); await page.waitForNavigation(); await page.click('[name=button]'); await page.waitForNavigation(); console.log('OK...closing Browser'); await browser.close(); })(); }
Kann mir jemand sagen, wo ich hier auf dem Schlauch stehe?
Vielen Dank schon mal!Aionly
-
Das hier ist dichter am funktionieren:
kopiere aber die eingangsvariablen noch drüber.
on({ id: object,change: 'ne' },async function() { log('Starting Browser...'); log('URL: '); log(host+url); log('Menu element: '); log(menu); button=String(getState(object).val); log('Button element: '); log(button); const browser = await puppeteer.launch({ args: ['--no-sandbox'],executablePath: '/usr/bin/chromium-browser' }); const page = await browser.newPage(); await page.goto(host+url); await page.waitForNavigation(); await page.click('[name=menu]'); await page.waitForNavigation(); await page.click('[name=button]'); await page.waitForNavigation(); log('OK...closing Browser'); await browser.close(); });
-
@aionly
Versuch's mal damit (ungetestet)on({ id: object, change: 'ne' }, async (obj) => { button = obj.val; console.log('Starting Browser...'); console.log('URL: '); console.log(host+url); console.log('Menu element: '); console.log(menu); console.log('Button element: '); console.log(button); const browser = await puppeteer.launch({args:['--no-sandbox'],executablePath: '/usr/bin/chromium-browser'}); const page = await browser.newPage(); await page.goto(host+url); await page.waitForNavigation(); await page.click('[name=menu]'); await page.waitForNavigation(); await page.click('[name=button]'); await page.waitForNavigation(); console.log('OK...closing Browser'); await browser.close(); });
-
@codierknecht
oh hab ich übersehen, ist object nicht ein reserviertes Wort das man nicht für Variablen nutzen kann? -
@ticaki sagte in Function Syntax Fehler:
@codierknecht
oh hab ich übersehen, ist object nicht ein reserviertes Wort das man nicht für Variablen nutzen kann?Kann gut sein. Sollte man natürlich unbedingt vermeiden und z.B.
objectId
verwenden. -
Nur der vollständigkeithalber object ist kein reserviertes Wort, aber wie du sagst besser nicht verwenden.
-
@ticaki sagte in Function Syntax Fehler:
object ist kein reserviertes Wort
ja, ist es nicht.
man könnte object sogar etwas zuweisen
wenn man allerdings das mit einem große O schreibt wirds lustig.
dann bleibt von javascript nicht mehr viel übrig
und beim 3. explodiert dann javascript wahrscheinlich (hab mich nicht getraut das auszuprobieren)let object = 123; let Object = 123; Object.prototype.constructor = 123;
daher alle Bezeichner, die nach den eingebauten typenbezeichnungen aussehen, lieber nicht verwenden.
-
Vielen Dank für eure Unterstützung, jetzt läuft es !