Как выполнить Javascript в Chrome без головы, используя php-phantomjs?

Я пытаюсь запустить безголовый браузер и запустить JS-скрипты (бот) внутри него, используя, но хочу запустить его с помощью php. Выполняя поиск в Google, я нашел реализацию / оболочку PhantomJS как php-phantomjs. Пожалуйста, потерпите меня, я очень новичок в этом деле.

Вот что я пытаюсь сделать, это сделать снимок экрана с окном оповещения (это не обязательно, но просто для проверки, выполняется ли JS, а затем снимок экрана).

Вот мой код:

// file: app.php

$client = PhantomJsClient::getInstance();
$client->isLazy();

$location = APP_PATH . '/partials/';

$serviceContainer = ServiceContainer::getInstance();
$procedureLoader = $serviceContainer->get('procedure_loader_factory')->createProcedureLoader($location);

$client->getProcedureLoader()->addLoader($procedureLoader);

$request  = $client->getMessageFactory()->createCaptureRequest();
$response = $client->getMessageFactory()->createResponse();

$request->setViewportSize(1366, 768);
$request->setHeaders([
'User-Agent' => 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'
]);

$request->setTimeout(5000);
$request->setUrl('https://www.google.co.in');

$request->setOutputFile(APP_PATH . '/screen.jpg');

$client->send($request, $response);

Пробовал два пользовательских сценария, как указано в списке здесь: http://jonnnnyw.github.io/php-phantomjs/4.0/4-custom-scripts/

// file: page_on_resource_received.partial, page_open.partial

alert("Hello");

ВЫХОД: Он просто показывает страницу, а не окно предупреждения.

Я повторяю, дело не в том, чтобы снимать скриншот, а просто чтобы убедиться, что JS выполняется.
Я просто хочу выполнить свои сценарии JS (лучше сказать, боты), как:

var form = document.getElementById('form');
var event = new Event('submit');
form.dispatchEvent(event);

или, возможно, используя jQuery, а затем верните вывод этой страницы в php в качестве ответа или около того. Поэтому, если есть какой-либо другой способ запуска ботов с помощью php в браузере без заголовка, пожалуйста, укажите это в своих ответах или комментариях.

1

Решение

PhantomJS без головы, то есть без графического интерфейса. Поэтому никаких оконных диалогов не видно.

Попробуйте написать собственный текст в элемент вместо предупреждения, например

document.getElementById("#title").innerHTML = "It works!";
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]