Führen Sie Puppeteer-Aktionen im Laravel-Controller mithilfe von JavaScript-Code aus
P粉098417223
2023-08-28 09:40:29
<p>Ich verwende Puppeteer, um den Browser von einem Laravel-Controller aus zu starten, weiß aber nicht, wie ich JavaScript-Code vom Controller aus ausführen soll</p>
<p>Meine Funktion ist wie folgt:</p>
<pre class="brush:php;toolbar:false;">$script = <<<SCRIPT
const puppeteer = require('puppeteer');
(async () => {
const browser = waiting puppeteer.launch({headless: false});
const page = waiting browser.newPage();
Warten Sie auf page.goto('http://my-url.com');
const button = Seite warten.$('button#button');
Warten Sie auf button.evaluate( button => button.click() );
Warten Sie auf page.waitForTimeout(5000);
...
Warten Sie auf browser.close();
})();
SKRIPT;
$process = new Process(['node', '-e', $script]);
$process->run();
$output = $process->getOutput();</pre>
<p>Wenn ich versuche, nur diesen Teil des Codes in der Knoten-Shell auszuführen: </p>
<pre class="brush:php;toolbar:false;">const puppeteer = require('puppeteer');
(async () => {
const browser = waiting puppeteer.launch({headless: false});
const page = waiting browser.newPage();
Warten Sie auf page.goto('http://my-url.com');
const button = Seite warten.$('button#button');
Warten Sie auf button.evaluate( button => button.click() );
Warten Sie auf page.waitForTimeout(5000);
...
Warten Sie auf browser.close();
})();</pre>
<p>Es funktioniert einwandfrei und ich sehe einen geöffneten Browser. Wenn ich versuche, die gesamte Funktion auszuführen, funktioniert es nicht. Daher denke ich, dass die Art und Weise, wie ich den JS-Code im Controller ausführe, falsch ist. </p>
我为JavaScript代码创建了一个新的js文件
script.js
而在控制器中,我已经进行了更改:
这对我有用