Lakukan tindakan Puppeteer dalam pengawal Laravel menggunakan kod JavaScript
P粉098417223
2023-08-28 09:40:29
<p>Saya menggunakan Puppeteer untuk melancarkan penyemak imbas daripada pengawal laravel, tetapi saya tidak tahu cara menjalankan kod JavaScript daripada pengawal</p>
<p>Fungsi saya adalah seperti berikut:</p>
<pre class="brush:php;toolbar:false;">$script = <<<SKRIP
const puppeteer = memerlukan('puppeteer');
(async () => {
pelayar const = tunggu puppeteer.launch({headless: false});
halaman const = tunggu browser.newPage();
tunggu page.goto('http://my-url.com');
butang const = halaman tunggu.$('butang#butang');
tunggu button.evaluate( button => button.click() );
tunggu page.waitForTimeout(5000);
...
tunggu browser.close();
})();
SKRIP;
$proses = Proses baharu(['nod', '-e', $script]);
$proses->jalankan();
$output = $process->getOutput();</pre>
<p>Apabila saya cuba menjalankan hanya bahagian kod ini dalam cangkang nod: </p>
<pre class="brush:php;toolbar:false;">const puppeteer = memerlukan('puppeteer');
(async () => {
pelayar const = tunggu puppeteer.launch({headless: false});
halaman const = tunggu browser.newPage();
tunggu page.goto('http://my-url.com');
butang const = halaman tunggu.$('butang#butang');
tunggu button.evaluate( button => button.click() );
tunggu page.waitForTimeout(5000);
...
tunggu browser.close();
})();</pra>
<p>Ia berfungsi dengan baik dan saya dapat melihat penyemak imbas dibuka. Apabila saya cuba menjalankan keseluruhan fungsi ia tidak berfungsi. Jadi saya rasa cara saya menjalankan kod JS dalam pengawal adalah salah. </p>
Saya mencipta fail js baharu untuk kod JavaScript
script.js
Dan dalam pengawal saya telah membuat perubahan:
Ini berkesan untuk saya