dzentota/chrome-dev-tools

这是一个PHP库,允许在PHP脚本中使用Chrome DevTools协议与Google Chrome进行交互。高度灵感来自marty90/PyChromeDevTools。

dev-master 2017-10-10 23:29 UTC

This package is auto-updated.

Last update: 2024-09-11 14:21:17 UTC


README

1. 描述

这是一个PHP库,允许在PHP脚本中使用Chrome DevTools Protocol进行交互。要使用此工具,您必须运行具有remote-debugging选项的Google Chrome实例,如下例所示。

google-chrome --remote-debugging-port=9222

您可能还想通过使用--enable-benchmarking--enable-net-benchmarking选项来启用进一步的Chrome基准测试功能。您可以使用--headless选项以无头模式运行Chrome。

2. 先决条件

更新后的Google-Chrome版本

3. 操作

3.1 初始化

在您的PHP脚本中,首先必须创建一个Chrome对象,如下所示

$chrome = new ChromeDevTools\Chrome();

您可以通过手动写入来指定Chrome的主机和端口

$chrome = new ChromeDevTools\Chrome($host="1.1.1.1", $port=1234);

默认使用localhost:9222

3.1 运行命令

要将命令发送到Chrome,只需在Chrome对象上调用相应的方法,并传递所需的参数。例如,要访问页面,请写入

$chrome->Page->navigate(['url' => 'http://example.com/']);

命令的返回值作为函数的返回值传递,已解释为JSON。

3.1 接收事件

Chrome会为浏览器中的特定事件发送消息。您可以通过两种方式获取它们;它们已作为JSON解释返回。在运行任何新命令之前,删除所有未读事件。

a) 您可以通过编写以下内容从已接收消息的队列中弹出一个消息

$message = $chrome->waitMessage();

该方法接受一个可选的参数timeout,即它放弃并返回null的秒数。默认值为1。

b) 您可以通过编写以下内容等待特定事件

$result = $chrome->waitEvent('event_name');
$matchingEvent = $result['matching_message'];
$messages = $result['messages'];

它等待直到到达具有event_name的事件,或者超时。 $matchingEvent包含第一个找到的具有event_name的事件,而$messages包含所有在之前到达的消息。超时值可以像之前的方法一样配置。

4. 示例

请参阅examples文件夹