JavaScript 코드를 사용하여 Laravel 컨트롤러에서 Puppeteer 작업 수행
<p>Puppeteer를 사용하여 laravel 컨트롤러에서 브라우저를 시작하고 있지만 컨트롤러에서 JavaScript 코드를 실행하는 방법을 모르겠습니다</p>
<p>내 기능은 다음과 같습니다.</p>
<pre class="brush:php;toolbar:false;">$script = <<<SCRIPT
const puppeteer = require('puppeteer');
(비동기 () => {
const browser = wait puppeteer.launch({headless: false});
const 페이지 = browser.newPage()를 기다립니다;
wait page.goto('http://my-url.com');
const 버튼 = 페이지를 기다립니다.$('button#button');
버튼을 기다립니다.평가(버튼 =>버튼.클릭());
페이지를 기다립니다.waitForTimeout(5000);
...
browser.close()를 기다리세요;
})();
스크립트;
$process = new Process(['node', '-e', $script]);
$프로세스->실행();
$output = $process->getOutput();</pre>
<p>노드 셸에서 코드의 이 부분만 실행하려고 하면: </p>
<pre class="brush:php;toolbar:false;">const puppeteer = require('puppeteer');
(비동기 () => {
const browser = wait puppeteer.launch({headless: false});
const 페이지 = browser.newPage()를 기다립니다;
wait page.goto('http://my-url.com');
const 버튼 = 페이지를 기다립니다.$('button#button');
버튼을 기다립니다.평가(버튼 =>버튼.클릭());
페이지를 기다립니다.waitForTimeout(5000);
...
browser.close()를 기다리세요;
})();</pre>
<p>잘 작동하고 브라우저가 열린 것을 볼 수 있습니다. 전체 기능을 실행하려고 하면 작동하지 않습니다. 그래서 컨트롤러에서 JS 코드를 실행하는 방식이 잘못된 것 같습니다. </p>